进程和线程的区别
线程是进程中更小的并发单位,一个进程中包含多个线程。
比如说聊天进程中包含有主线程、发送消息的线程和接收消息的线程。
进程中负责执行程序的一个执行控制单元。
线程负责程序的执行,而一个进程允许有多个控制单元,我们称为多线程。
线程的创建方式
第一种方法:
1, 继承Thread类
2, 重写Thread类里面的run方法
3, 创建线程的子类对象
4, 调用start方法启动线程
第二种方法:
1, 定义类实现Runnable接口
2, 实现接口里的run方法,也就是将线程要执行的任务封装在run方法中
3, 创建线程对象,然后将实现Runnable接口的类作为创建线程对象的参数传入
4, 调用线程对象的start方法,启动线程
线程安全
1, 多线程操作共享数据
2, 操作共享数据的代码有多条
解决办法:同步代码块
好处:解决线程安全问题
弊端:降低了相率,每次都要去判断同步锁
同步代码块和同步函数
同步代码块的锁是任意对象,同步函数的锁是this