- 进程:程序运行的过程
- 线程:进程的一条执行路线
多线程:充分利用CPU资源分配多条线程提高执行效率,CPU在同一时间片只能执行一句语句,由于CPU效率高,形成同时执行的假象.
Thread(线程类)
- 常用方法:sleep(); currentThread(); setPriority();
开启线程的方式1.继承Thread:
- 重写run();
- 实例化后调用start()开启线程;工作原理:把要执行的代码写到run()中,java在start()中封装了开启线程,然后其内部再调用run();
开启线程的方式2.实现Runnable:
- 用Thread类实例化传入实现Runnable类的构造方法;
- 必须要重写无参数的run();
- 实例化后调用start()开启线程;
Runnable和Thread的区别:
- Runnable:数据是共享的
- Thread:数据是每个线程都是独占的,缺点:java是单继承的,如果继承了Thread,就不能继承其他类
同步锁(关键词synchronized)
- 当多线程访问同一资源的时候,需要对资源进行保护,同一时间只能一条线程占用资源,所以要加上互斥锁,在线程访问时上锁,在用完以后解锁,要进行上锁解锁操作,所以线程安全是效率较低的
线程的生命周期
- 新建new() -> 就绪start() -> 开始start()(由系统自动调用其内部run()) -> 阻塞sleep() -> 死亡(自然死亡,死锁,强制停止stop())
Java - 多线程的基本原理
最新推荐文章于 2022-07-07 20:48:02 发布