当前位置: 首页 > news >正文

网站整站开发教程江西通威公路建设集团有限公司网站

网站整站开发教程,江西通威公路建设集团有限公司网站,口碑营销的经典案例,客户网站建设问题1 线程安全线程安全就是多线程访问时#xff0c;采用了加锁机制#xff0c;当一个线程访问该类的某个数据时#xff0c;进行保护#xff0c;其他线程不能进行访问直到该线程读取完#xff0c;其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据…1 线程安全线程安全就是多线程访问时采用了加锁机制当一个线程访问该类的某个数据时进行保护其他线程不能进行访问直到该线程读取完其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护有可能出现多个线程先后更改数据造成所得到的数据是脏数据2 局部变量并不会数据共享局部变量不同线程的并不共享所以并不会发生覆盖PrivateNum pnew PrivateNum();MyThread threadAnew MyThread(A,p);MyThread threadBnew MyThread(B,p);threadA.start();threadB.start();public void test( char i) {try {int num0;- - - - - - -}catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}3 实例成员变量数据共享PrivateNum pnew PrivateNum();MyThread threadAnew MyThread(A,p);MyThread threadBnew MyThread(B,p);threadA.start();threadB.start();public void test( char i) {int num0;try {- - - - - - -}catch (InterruptedException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}线程AB访问的是同一个变量(指向同一个地址)所以这个时候会发生覆盖同时这里出现了线程安全问题4 synchronized关键字可以避免线程安全问题如果多个线程访问的是同一个对象方法中的局部变量那么这个变量并不共享线程AB对此变量的操作将互不影响如果多个线程访问的是同一个对象方法中的成员变量那么这个变量共享如果不处理好线程问题可能会出现线程安全问题通过synchronized关键字可以使方法同步5 多个线程访问的是两个不同实例的同一个同步方法public static void main(String[] args) {PrivateNum p1new PrivateNum();PrivateNum p2new PrivateNum();MyThread threadAnew MyThread(A,p1);MyThread threadBnew MyThread(B,p2);threadA.start();threadB.start();}}这是因为这里是两个锁创建了p1和p2对象创建的是两个锁锁对象不同不造成互斥作用6 多线程调用同一个实例的两个不同(一个同步一个非同步)方法MyThread threadAnew MyThread(A,p1);MyThread2 threadBnew MyThread2(B,p1);threadA.start();threadB.start();线程B可以异步调用非同步的方法7 死锁线程AB开始执行时因为锁不同所以不互斥A当执行到另一个同步代码块(锁2)的时候由于这个时候锁给线程B占有了所以只能等待同样B线程也是如此AB互相抢对方的锁但是所以造成了死锁8 总结多个线程调用的不同实例的同步方法线程不互斥。如果两个线程的锁对象一样(都是p1)两个线程分别调用同步方法和非同步方法线程不会同步执行。但是如果调用两个不同的同步方法因为锁对象一致两个线程同步执行。设想一个情况有一个实例有两个方法一个修改值(synchronized)一个读值(非synchronized)此时两个线程一个修改值一个读取值这个时候因为这两个线程并不会挣抢锁两个线程互不影响那么此时可能就会出现一种情况线程A还没修改完线程B就读取到没有修改的值。这就是所谓的脏读。重入锁一个获得的锁的线程没执行完可以继续获得锁。线程占用锁的时候如果执行的同步出现异常会将锁让出。父类方法同步子类重写该方法(没有synchronized关键字修饰)是没有同步作用的。同步代码块的锁对象可以是本对象也可以是其他对象。同一个锁对象可以产生互斥作用不同锁对象不能产生互斥作用一个方法中有同步代码块和非同步代码块同步代码块的代码是同步执行的(块里的代码一次执行完)而非同步代码块的代码可以异步执行一个对象中的不同同步代码块是互斥的执行完一个代码块再执行另一个代码块同步代码块(this)和synchronized方法的锁定的都是当前对象 thisClass类也可以是锁Class锁的实现可以通过静态的synchronizd方法也可以通过静态方法里面的同步代码块(锁对象为Class)静态类的同步方法锁对象还是该类的一个实例volitate增加了实例变量在对个线程之间的可见性保证我们获得的是变量的最新值。volatile在读上面保持了同步作用但是在写上面不保持同步synchronized的同步作用不仅保证了对同一个锁线程的互斥还保证了数据的同步volatile对比synchronized两者修饰的不同volatile修饰的是变量synchronized修饰的是方法和代码块两者的功能不同。volatile保证数据的可见性synchronized是线程同步执行(间接保证数据可见性让线程工作内存的变量和公共内存的同步)volatile性能比synchronized性能高
http://www.pierceye.com/news/82880/

相关文章:

  • 可信网站认证有用吗北京网站搭建开发
  • 昆明seo网站教你如何建网站视频
  • 江苏省电力建设一公司网站3322怎么做网站
  • 建设网站 无法显示图片怎么访问wordpress
  • 建设一个网站需要学习什么旅游网站网页设计论文
  • 广东省网站备案注销wordpress生成的html代码
  • 360怎么变成建设银行首选网站常用的软件开发平台
  • 网站开发语言怎么看wordpress页面打开404
  • wordpress vue网站cd wordpress
  • 建设工程造价管理协会网站wordpress php 链接
  • 网站备案被拒绝深圳做公司网站推广的
  • 兰州seo新站优化招商大连市营商环境建设监督局网站
  • 做网站怎么找图如何安装wordpress的插件安装教程
  • 锦州市网站建设最牛的设计网站建设
  • 有趣网站之家专业做网站的公司有没有服务器
  • 0元试用网站开发网站空间如何申请
  • 举报网站建设情况汇报wordpress中文版没有繁体字
  • 调用别人网站的数据库中国建设银行上海市分行网站
  • 做网站一个月可以赚多少钱wordpress更新后图片不显示图片
  • 河东网站建设创新的菏泽网站建设
  • 天宁寺网站建设青柠影院免费观看电视剧高清
  • 影视传媒广告公司网站模板电商专业是做什么的
  • 济南手机网站建设公司报价虚拟主机网站怎么上传文件
  • 网站怎么黑做网站怎么宣传运营
  • 涿州做网站的Myeclipse怎么做网站
  • 做网站ddos攻击网站建设 seo结构
  • 网站建设运营维护啥意思平面设计图100张
  • 模板建网站多少钱北京网上注册公司流程
  • 网站app怎么做网络服务无法启动
  • 潍坊网站建设公司排名做鞋原料网站