1.多线程
Thread类是Java中一个非常重要的类,它是Java多线程的基础,其他多线程如Runnable…都依赖于Thread。想要实现多线程,就必须让对象extends Thread类或者implements Runnable接口,并且复写run方法,在run方法体中完成对于业务逻辑的调用。在主线程中通过调用多线程对象的start()方法完成多线程。
2.线程的声明周期

3.Java中的多线程线程同步工具
1>synchronized关键词
非常简单粗暴的实现,只要对于某一个对象或者摸个静态方法前加上synchronized关键字,当线程调用对象或者方法时,它就会拥有这个对象的锁,其他对象无法使用对象或者调用方法,实际实践中,被当成锁的对象在方法体中最好不要进行其他操作,以免对于该对象的锁失去意义。
2>锁和可重入锁
普通锁的调用如下:
synchronized(lock) //获得对锁的占有
{
lock.wait(); //暂时释放对锁的占有,这是其他对象通过竞争获得锁,并执行自己的方法,然后归还锁。
doSometing;
lock.notify(); //方法调用结束,释放对锁的占有
}
可重入锁的调用如下:
lock.lock() //获得对锁的占有
Contional.await(); //暂时释放对锁的占有,并且定向的将锁过渡给指定对象
Contional.signal(); //释放对锁的占有,并定向的将锁
在调用await()和signal()方法的时候,锁对象被释放,调用结束锁对象又被锁住。也就是说可重入锁,也就是递归锁在调用时被锁住,在调用结束之后被释放。
3>LinkBlockingDeque
使用LinkBlockingDeque时,通常有两个队列,一个是任务队列,一个是消息队列,两个队列都使用put()和take()方法,任务队列进行任务的生产和消费,消息队列用来处理同步问题。
来源:CSDN
作者:CPV
链接:https://blog.csdn.net/m0_37346492/article/details/103911241