1.2.3实例变量与线程安全(共享数据的情况)
来源:互联网 发布:定性与定量数据区别 编辑:程序博客网 时间:2024/05/19 11:47
package demo;/** * Created by sunyifeng on 17/10/9. */public class MyThread extends Thread { private int count = 5; @Override public void run(){ super.run(); count --; System.out.println("由" + this.currentThread().getName() + "计算,count=" + count); }}
package demo;/** * Created by sunyifeng on 17/10/9. */public class Run { public static void main(String[] args) { MyThread myThread = new MyThread(); Thread a = new Thread(myThread, "A"); Thread b = new Thread(myThread, "B"); Thread c = new Thread(myThread, "C"); Thread d = new Thread(myThread, "D"); Thread e = new Thread(myThread, "E"); // a.start(); b.start(); c.start(); d.start(); e.start(); }}
运行结果:由A计算,count=4
由C计算,count=2
由B计算,count=3
由D计算,count=1
由E计算,count=0
程序说明:
如果有多线程访问,则必定会出现多线程的安全问题。
package demo;/** * Created by sunyifeng on 17/10/9. */public class MyThread extends Thread { private int count = 5; @Override synchronized public void run(){ super.run(); count --; System.out.println("由" + this.currentThread().getName() + "计算,count=" + count); }}
通过在run方法前加入synchrinized多个线程在执行run方法时,以排队的方式处理。当一个线程调用此方法前,先判断run方法有没有被上锁,如有锁,必须等到其他线程对run方法执行完之后才能执行。阅读全文
0 0
- 1.2.3实例变量与线程安全(不共享数据的情况)
- 1.2.3实例变量与线程安全(共享数据的情况)
- struts中Action的线程安全与实例变量和静态变量的共享问题
- 从头认识多线程-1.2 共享变量与线程安全简介
- ThreadLocal与Synchronized(线程安全与数据共享)
- 多线程-实例变量与线程安全
- 【多线程】实例变量(synchronized)与线程安全
- 线程安全与共享数据同步
- 使用线程安全的单个实例变量
- 从头认识多线程-2.1 局部变量与实例变量的线程安全
- java并发编程(对于线程内共享变量安全的思考)
- 自定义线程类中实例变量与其他线程共享与不共享
- Java-Runnable线程共享实例变量
- java线程共享变量与静态变量
- 2.1.2实例变量非线程安全
- 线程范围内共享数据(1)--》自己创建Map进行数据与当前线程的绑定
- java线程安全之静态变量、实例变量、局部变量
- Java:线程安全之静态变量、实例变量、局部变量
- js在表单提交时的验证
- LintCode—贪心—落单的数
- Socket编程
- JS异步操作-promise
- Linux SSH 无密码登录
- 1.2.3实例变量与线程安全(共享数据的情况)
- qbxt国庆水题记day6
- 在applicationContext.xml中引入jdbc.properties文件
- 【noip2016提高组day2T3】【愤怒的小鸟】状压dp转移时的集合包含
- nginx的配置文件详解
- 八皇后问题
- Linux 基础操作 (四)————查看用户信息及修改、提权、修改密码
- 第二次作业,模拟sim卡与手机
- javascript 观察者模式 (订阅者与发布者)