博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程ThreadDemo04
阅读量:5146 次
发布时间:2019-06-13

本文共 1114 字,大约阅读时间需要 3 分钟。

package day190109;public class 线程ThreadDemo04 {    public static void main(String[] args) throws InterruptedException {        A aa = new A();        aa.start();;        A aaa = new A();        aaa.start();        Thread.sleep(2000);        System.out.println(A.a);    }}class A extends Thread{    public static int a;    public static Object o = new Object();    /**     * 线程安全:就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,     * 其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。     * 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据     * 线程安全:必须要使用很多
关键字来同步控制,所以必然会导致性能的降低。 * 线程安全:是通过线程同步控制来实现的,也就是synchronized关键字。 */ /** * 死锁: * 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象, * 若无外力作用,它们都将无法推进下去。 * 产生死锁的4个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 */ @Override public void run() { synchronized (this) { for (int i = 0; i < 10000; i++) { a++; } } }}

 

转载于:https://www.cnblogs.com/tianming18/p/10242715.html

你可能感兴趣的文章
hadoop 文件合并
查看>>
Leetcode: Jump Game
查看>>
补漏-1
查看>>
未能找到类型或命名空间名称“Quartz”
查看>>
System.Threading.Tasks并发和异步代码使用
查看>>
mariadb 重置密码
查看>>
破产姐妹第一季/全集2 Broke Girls迅雷下载
查看>>
PHP Switch 语句判断成绩
查看>>
Picture
查看>>
[洛谷P1600] 天天爱跑步
查看>>
nginx配置注意事项
查看>>
configmap使用-查看configmap个数
查看>>
python简述以及安装
查看>>
IOS性能调优系列:使用Zombies动态分析内存中的僵尸对象
查看>>
Jenkins 部署 PHP 应用
查看>>
extjs发布
查看>>
python元编程详解
查看>>
使用css 设置高度等于宽度
查看>>
聊聊用户
查看>>
blog
查看>>