文档章节

JAVA7并发编程

jiangmitiao
 jiangmitiao
发布于 2015/06/11 16:28
字数 399
阅读 114
收藏 1

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

1线程的创建与运行

接口Runnable

覆盖run方法

Thread thread = Thread(Runnable r,String name);
thread.start();

线程信息

thread中包含id  name  priorty  status

priorty中包括1到10,1最低,10最高

status状态有6种:new, runnable, blocked, waiting, time waiting, terminated

线程中断

interrupt()方法会中断线程。产生interrupredexception异常,用isInterrupted()来判断。

线程休眠与恢复

sleep函数也会抛出interruptedexception异常

等待线程终止

当一个线程join()方法被调用,调用所在线程将会挂起,直到被调用线程完成任务

守护线程

Daemon 线程优先级很低,当一个进程里没有其他线程运行的时候,守护线程才运行。

setDaemon方法只能在start前进行调用。

线程中不可控异常处理

非运行时异常,ioexception  classnotfoundexception,必须声明throw或捕获

运行时异常,numberformatexception,不需要任何操作

run方法不支持throws所以只能捕获

线程的分组

ThreadGroup tg;

使用工厂类创建线程

接口:ThreadFactory

可以创建个性化的线程,即设置线程信息。

2线程同步

使用synchronized实现同步方法

synchronized可以给类,方法,对象使用,静态方法和动态方法同时使用synchronized,则两个方法能被不同线程同时使用。

同步代码中使用条件

wait()使用时要捕获interruptedexception方法

使用锁同步:

Lock lock = new ReentrantLock();
lock.lock();
lock.unlock();

在锁中使用多条件:

Condition c1 = lock.newCondition();
Condition c2 = lock.newCondition();
c1.await();
c2.signal();

condition必须在lock()和unlock()方法内。

更多文章:https://blog.gavinzh.com

下一篇: calcite简单入门
jiangmitiao

jiangmitiao

粉丝 19
博文 54
码字总数 64996
作品 1
朝阳
程序员
私信 提问
加载中
请先登录后再评论。
读书&源码

六、读书 《Java核心技术卷1》读书笔记 《Maven实战》读书笔记 《Spring实战》读书笔记 《图解HTTP》读书笔记 《Java并发编程的艺术》读书笔记 《Java7并发编程实战手册》读书笔记 《Java并发...

osc_y8phpkyg
2018/05/29
3
0
JDK基础---组合知识疑问

JAVA学习好的博客网站 Java 学习/面试指南 Mac下JVisualVM基本使用 jvisualvm远程监控Tomcat jvisualvm 插件地址: SpringMVC线程安全问题的思考 幂等性控制 Java的内存泄漏 java内存泄漏与内...

spinachgit
2019/04/12
15
0
Java:ConcurrentHashMap的实现机制

探索 ConcurrentHashMap 高并发性的实现机制 Java并发编程之ConcurrentHashMap 聊聊并发(四)——深入分析ConcurrentHashMap 上面的三篇分析是针对java7的,java8中的实现方式已经变化。...

樂天
2015/06/28
159
0
阿里资深架构推荐:Java实战资料合集pdf学习文档

引言 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程...

osc_9yc7q9oq
03/21
5
0
HashMap、ConcurrentHashMap原理分析

集合(Collection)是编程中常用的数据结构,而并发也是服务器端编程常用的技术之一,并发总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会...

osc_hrgyucxu
2018/08/05
2
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS6.9下手动编译并安装Python3.7

CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍python3.7.3版本的手动编译并安装的步骤 1、下载Python3.7.3的源码包 https://www.python.org/f...

yuanfan2012
2019/05/09
0
0
用canvas画太极图(一步步详解附带源代码)

canvas绘图 该元素负责在页面中设定一个区域,然后由js动态地在这个区域中绘制图形。这个技术最早是由美国苹果公司推出的,目的是为了取代flash,很快主流浏览器都支持它。 绘制路径 要绘制路...

osc_8adtko4d
10分钟前
0
0
iOS逆向开发(5):微信强制升级的突破

接下来的几篇文章,小程以微信为例,实战地演示一下:如何注入iOS的APP。其中使用到的知识,基本在前面的文章中都有介绍到。 小白:小程,我想用回旧版本的微信! 小程:为什么要用旧版本微信...

广州小程
05/21
6
0
时间格式的处理,前端的时间显示2020-07-13T16:02:00.000+0000

在后端添加@JsonFormat @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") 在这里插public class CdEqInfoVO { /** * 设备id */......

osc_ekw8urc6
11分钟前
0
0
CLion 中的 Makefile 项目:现已公开!

CLion 2020.2 EAP2 带来了期待已久的 Makefile 项目支持。尽管它仍在初期阶段,具有各种局限性和已知问题,但足以应付大量项目。 您有 Makefile 项目吗?查看原文获取免费的 EAP 版本并立即尝...

Bennyhuo
前天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部