您的位置:首页 > 其它

对于多线程的思考与笔记

2020-07-14 06:31 148 查看

同步与异步
同步:排队执行,效率低,线程安全。
异步:同时执行,效率高,线程不安全。

并发与并行
并发:指两个或多个事件在同一时间段内发生。(可以说时并发,秒并发,日并发)
并行:指两个或多个事件在同一时刻发生(同时发生,指此时)

多线程的使用

格式:… extends Thread (继承Thread)
Public void run(){
//run方法就是线程要执行的任务方法
}
使用方法不是run(),是对象名字.start()

格式:… implements Runnable (实现Runnable)
Public void run(){
//run方法中:
//创建Runnable实现类的对象
类名 对象名 = new 类名()
//创建一个线程,为其分配任务
Thread t = new Thread(对象名)
}

实现Runnable和直接继承Thread相比的优势:
可以避免单继承所带来的局限性

Thread类
getName() 返回线程的名称
setPriority(int newPriority) 改变线程的优先级
sleep(long millis) 使当前正在执行的线程休眠指定的毫秒数
Interrupt() 添加中断标记
currentThread().getName() 返回当前线程名称
current() 返回当前线程

线程同步:synchronized

解决方案1:同步代码块
格式:synchoronized(锁对象){

解决方案2:同步方法
格式:public synchronized boolean 方法名()

解决方案3:显示锁Lock
先创建锁:Lock l = new ReetrantLock;
然后锁上:l.lock();
最后解锁:l.unlock();

公平锁与不公平锁
上述三种解决方案都是不公平锁
公平锁:private Lock l = new ReetantLock(true);
//true表示创建的是公平锁,默认是false

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐