多线程3-同步及生命周期
来源:互联网 发布:php error log 不生成 编辑:程序博客网 时间:2024/04/29 07:43
线程同步
1.同步代码块
在代码块上“synchronized”关键字,则此代码块就称为同步代码块
2.同步代码块格式
synchronized(同步对象){
需要同步的代码;
}
3.同步方法
除了代码块可以同步,方法也是可以同步的
4.方法同步格式
synchronized void 方法名称(){}
//没加同步的时候public class MyThread implements Runnable{ private int ticket=5; public void run(){ for(int i=0;i<10;i++){ System.out.println("车票:"+ticket--); } }}//测试public class ThreadTest{ public static void main(String[] args){ MyThread mt=new MyThread(); Thread t1=new Thread(mt); Thread t2=new Thread(mt); Thread t3=new Thread(mt); t1.start(); t2.start(); t3.start(); }}
//加同步代码块之后public class MyThread implements Runnable{ private int ticket=5; public void run(){ for(int i=0;i<10;i++){ synchronized(this){ if(ticket > 0){ try{ Thread.sleep(1000); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println("车票:"+ticket--); } } } }}
//加同步方法public void run(){ for(int i=0;i<10;i++){ tell(); }}public synchonized void tell(){ if(ticket > 0){ try{ Thread.sleep(500); }catch(InterruptedException e){ e.printStackTrace(); } System.out.println("车票:"+ticket--); }}
生命周期
suspend()线程暂时挂起, resume()线程恢复运行, wait()暂停
此三个方法容易引起死锁
0 0
- 多线程3-同步及生命周期
- Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)
- 多线程及同步
- Linux多线程及同步
- 多线程(二)生命周期和同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- Linux多线程通信及同步
- MFC多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- Linux多线程通信及同步
- Android分包MultiDex源码分析
- 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- 高德地图定位功能(笔记)
- ffmpeg--问题
- Nginx配置文件nginx.conf中文详解
- 多线程3-同步及生命周期
- LAB颜色空间各通道的取值范围
- 2、函数的升级(上)
- 阳台做成榻榻米 阳台做成书房
- Python学习笔记(1)
- pyhton套件 Jupyter
- Spring的缓存实现
- Linux简介
- js数组操作大全(pop,push,unshift,splice,shift方法)