文档章节

线程

 梦想家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
深圳

暂无文章

使用JDK自带的jmap和jhat监控处于运行状态的Java进程

对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等。 本文基于JDK1.8而写成。 我下...

JerryWang_SAP
11分钟前
1
0
下单接口调优实战,性能提高10倍

概述 最近公司的下单接口有些慢,老板担心无法支撑双11,想让我优化一把,但是前提是不允许大改,因为下单接口太复杂了,如果改动太大,怕有风险。另外开发成本和测试成本也非常大。对于这种...

Sam哥哥聊技术
44分钟前
2
1
rabbitMQ的安装和配置

在Windows下进行rabbitMQ的安装 第一步:软件下载 在安装rabbitMQ之前,需要先安装Erlang。 Erlang官网:http://www.erlang.org/downloads rabbitMQ官网:http://www.rabbitmq.com/download....

狼王黄师傅
今天
3
0
Vue-Element-Upload

记录一下文件上传封装Js 代码示例 封装:uploadFile.vue <template> <el-upload v-model="attachment" ref="upload" class="upload-demo" :action="uploadUrl" ......

华山猛男
今天
4
0
AWVS破解及使用手册

1.安装 因为是windows软件,比较简单,此部分略: 破解插件下载: 链接: https://pan.baidu.com/s/1x9LK9F3KvqDgTvXDjoSZnQ 提取码: 7k4u 2.创建扫描目标 2-1.Targets->Add Target 2-2.对话框...

硅谷课堂
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部