文档章节

线程

 梦想家Peng
发布于 2016/03/03 10:29
字数 319
阅读 3
收藏 0

线程的同步
-----------------------------------

当存在多个线程同时修改一个值时,可能会出现先后修改的现象,也可能出现同时修改的现象。在有些场景中,可能只允许先后依次修改,而不允许同时修改。
解决线程同步的安全问题,可以使用互斥锁,使用到的关键字是synchronized,使用方式是用synchronized将需要互斥的代码框住,其中,synchronized后的括号内必须是多个线程共同访问的对象,例如:

synchronized (obj) {
    if (account.amount >= 800) {
        System.out.println(name + "检查到余额为" + account.amount
                + ",开始取钱 ... ...");
        account.amount -= 800;
        System.out.println(name + "取款完成!余额为" + account.amount + "!");
    } else {
        System.out.println(name + "检查到余额不足,取钱失败!");
    }
}

synchronized也可以用于修饰方法,如果使用这样的语法,必须保证该方法所在的类的对象,在多个线程之间是共享的。


线程的其它方法
-----------------------------------
setName() / getName():设置/获取线程的名称
getId():获取线程的ID
setPriority() / getPriority:设置/获取线程的优先级,表现为优先级越高,被分配到系统资源进行运算的单次时长可能越长,取值为1-10,可以使用常量表示:MIN_PRIORITY NORM_PRIORITY MAX_PRIORITY
Thread.currentThread():获取当前线程的对象

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 34
码字总数 15605
作品 0
深圳
私信 提问

暂无文章

Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略(一):自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用...

程序猿DD
18分钟前
1
0
Java 使用 pinyin4j 生成汉字拼音

添加 pinyin4j jar包 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> ......

yh32
29分钟前
3
0
Deepin 安装wireshark抓包工具

一、关于deepin和wireshark deepin目前已经发展到15.8了,开发Android毫无压力,在四个月的使用时间里,已经非常习惯了。目前想处理一些网络问题,因此尝试在deepin上安装一个抓包工具。dee...

IamOkay
今天
6
0
Docker镜像仓库服务-Nexus

建立云原生集群系统,建立自己的私有Docker镜像仓库必不可少。一方面可以加快多节点部署容器镜像的下载速度,另一方面是为了安全(容器里存储有系统所有的信息、包括密码、数据库等等,切记不...

openthings
今天
6
0
127.0.0.1 和 0.0.0.0 地址的区别

1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-a...

华山猛男
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部