在java中并发部分API包含哪些内容?实际代码展示

BSO 2020-09-14 10:02:07 java常见问答 4561

java作为一门功能强大内容丰富的编程语言,在我们的日常生活当中运用越来越广泛,学习的人也越来越多。今天就来为大家介绍在java中并发部分API包含哪些内容以及通过实际的代码来为大家展示。

一、java.lang.Runnable

void run():必须覆盖这个方法

二、java.lang.Thread

1.Thread(),Thread(Runnable target):构造器

2.void start():启动线程

3.void run():如果没有重写,调用关联Runnable的run方法

4.void interupt():中断线程(中止阻塞状态,对运行线程无作用)

5.void setPriority(int newPriority):设置优先级(1-10,默认5)

6.static void yield(),static void sleep(long millis):使当前线程处于让步状态(让步于同优先级或高优先级线程)

7.休眠,void setDaemon():设置为守护线程

8.Thread.State getState():获得线程当前状态

三、锁对象,代码如下所示:

ReentrantLock myLock = new ReentrantLock();
mylock.lock();
try
{
    critical section
}
finally
{
    mylock.unlock();
}

四、条件对象,代码如下所示:

private ReetranLock mylock = new ReetranLock();
private Condition sufficientFunds = mylock.newCondition()
public void transfer(int from, int amount)
{
    mylock.lock();
    try
    {
        while (account[from] < amount)
        {
            sufficientFunds.await();
        }
        ...
        sufficientFunds.singalAll();
    }
    finally
    {
        mylock.unlock();
    }
}

五、synchronized关键字(内置锁)

1.使用synchronized如何设置条件变量

格式1:synchronized 方法,格式2:synchronized(obj){}

2.void notifyAll():解除在对象上调用wait方法的线程的阻塞状态

3.void wait():导致线程进入等待状态

六、volatile域

1.volatile只提供可见性(在线程工作内存中被修改后立刻写入到主存中),不提供原子性。

2.使用final变量可以保证可见性:构造函数完成时即不变,未完成构造期间对其他线程不可见。

七、java.lang.ThreadLocal

作用:将内存共享变量变为线程拷贝变量

八、Executor类执行器,图片如下所示:

并发部分API的内容

1. 调用Executors类(工厂类)中静态工厂方法newCacherThreadPool

2.调用submit提交Runnable或Callable对象

3.当不再提交任何任务时,调用shutdown

以上就是关于在java中并发部分API包含哪些内容的概述以及实际的代码展示。想要了解更多java基础以及常见问题,敬请关注奇Q工具网。

推荐阅读:

java队列处理高并发怎么实现?

java多线程与高并发怎么一起实现?

java多线程并发程序执行慢有什么原因?该怎么解决?