跟大家唠唠多线程
一、什么是线程?
要想知道线程,首先要了解进程。进程是执行中的程序即具有独立功能的程序关于某个数据集合的一次运行过程。而线程是执行路径。
二、如何创建线程?
1、继承Thread类,重写run方法。
运行方式:实例化后.start()
2、实现runable接口。但运行不能直接start,要先new Thread(实例化对象),再.start()
由于Java是单继承多接口,所以2方式好一些。
三、线程的运行状态
1、新建状态 new Thread()
2、就绪状态 start()等待CPU调度
3、运行状态 CPU执行run方法
4、死亡状态 代码执行完毕或stop方法
5、休眠状态 sleep或wait方法
四、线程安全
多个线程共享同一个全局变量,做写操作时。会发生线程安全问题。
解决线程安全:(由于涉及到锁,我放到下篇文章再详聊)
1、同步代码块 synchronized{}以保证数据的原子性。
2、同步函数
一个类所有方法都有synchronized修饰时,该类就称为线程安全的类。
五、多线程的三大特性
- 原子性:原子操作时程序运行的最小单位,故原子性可保证线程安全
- 可见性:其他线程能及时看到共享变量值的修改
- 有序性