线程同步的几种方式 什么是线程的同步?为什么要实现线程的同步?
浏览量:3030
时间:2021-03-12 05:15:36
作者:admin
什么是线程的同步?为什么要实现线程的同步?
线程同步:多个线程同时访问同一个资源,等待资源访问的结束,浪费时间,效率低
线程异步:访问资源时,空闲等待的同时访问其他资源,实现多线程机制
异步处理是,如果你现在问我一个问题,我不能回答你,然后我可以在我使用时间的时候处理你的问题,同步信息立即被处理——直到信息处理完成后才返回消息句柄;异步信息接收后会在后台处理一段时间——最早在信息处理结束前返回消息句柄
区分同步和异步
一个进程启动的多个无关线程,它们之间的关系是异步的。
同步必须执行到最后才能执行其他操作,异步可以任意操作
同步的优缺点
优点:解决了线程安全问题。
缺点:每次都有判断锁,降低效率。
但是在安全和效率之间,首先考虑的是安全。
同步的前提
1。当多个线程执行时,需要同步。如果是单线程,则不需要同步。
2、多个线程在执行期间是否使用同一个锁。如果是,那就是同步。否则,它不是同步的。
Synchronized(obj){}相同的锁
Synchronized(new object){}不是相同的锁
同步需要在run()中同步的代码。如果某些代码不需要同步,请不要将其放入同步代码块中。
有两种形式的同步:
1。同步码块,同步关键字封装的代码为同步码块;
2。同步函数,同步关键字修改的函数为同步函数。
同步代码块的锁可以是任何对象,因此可以在执行前创建锁对象。那么同步功能的锁在哪里呢?
同步函数的锁是调用同步函数的对象,即。
如果同步功能由静态修改,则同步功能的锁是由堆内存中的类形成的类文件对象。
此时,可能没有此类的对象,但必须有此类的字节码文件对象。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。