多线程、同步

来源:互联网 发布:单片机串口初始化程序 编辑:程序博客网 时间:2024/06/02 09:38
 

创建线程的两种方式:

1、继承Thread类:

2、实现Runnable接口(推荐使用,因为java单继承多实现):

 

线程的运行顺序是混乱的,谁先抢到CPU谁先运行

线程状态:new新建状态、start就绪状态(排队等待抢CPU)、run运行状态(哪个线程抢到CPU哪个线程就自动运行本身的run方法)、stop  destroy:死亡状态

 

线程优先级高的有可能优先抢到CPU控制权,优先级只有1、5、10

thread.setPriority(Thread.MAX_PRIORITY); 改变线程的优先级写常量不用数字

 

Synchronized void methodA(){ }  同步方法

Synchronized (object){ 需要同步的代码 } 同步块

同步块放牵扯到数据操作的代码让其同步,同步块里的代码在同一时间点只能有一个线程访问。

 

 

wait——notify机制

wait( )   notify( )  notifyAll( ) 方法是Object类中的final方法实现的(线程间通讯机制)

 

wait( )   :告知被调用的线程退出监视器进入等待状态,直到其他线程进入相同的监视器并调用notify()方法。

                  (让本身的线程进入等待状态)

notify( )  :通知同一对象上第一个调用wait( )线程

                  (试图唤醒正在等待的第一个线程)

notifyAll( ):通知调用wait( )的所有线程,先抢到CPU的线程先运行。

                       (试图唤醒其他正在等待的所有线程)

原创粉丝点击