文档章节

JAVA7并发编程

jiangmitiao
 jiangmitiao
发布于 2015/06/11 16:28
字数 399
阅读 104
收藏 1
点赞 0
评论 0

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

© 著作权归作者所有

共有 人打赏支持
jiangmitiao

jiangmitiao

粉丝 16
博文 44
码字总数 44413
作品 1
朝阳
程序员
Java:ConcurrentHashMap的实现机制

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

樂天 ⋅ 2015/06/28 ⋅ 0

Java并发学习(十九)-Java8中ConcurrentHashMap分析

断断续续看了那么些天,趁着周末把知识记下来。 在平常编程时,HashMap是用的很频繁的一个类,但是,当在并发情况下,却不推荐使用它,因为它没有做任何的并发控制,不安全,是个隐患。 当然...

anLA_ ⋅ 2017/12/19 ⋅ 0

java并发编程 - 线程的join()示例

Java7 API: http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join() public final void join() throws InterruptedExceptionWaits for this thread to die.An invocation o......

YuanyuanL ⋅ 2014/09/19 ⋅ 2

深入理解Java 7(笔记)

switch Java 7 中新增加了对String的支持,除此之外还支持int、char、byte、short及其封装类Integer、Character、Byte、Short。对于基本类型的支持我们很容易理解,但是String类型使用了不同...

chris_2009 ⋅ 2016/03/30 ⋅ 0

Raspberri Pi 获得来自 Oracle 的 Java 支持

树莓跟咖啡真的不配,但我们说的树莓派获得 Oracle Java 的支持完全两码事 。该公司已经将 Oracle 的 Java 7 SDK 添加到软件库中。 以后的所有树莓派板子都将提供开箱即用的 Oracle Java 环境...

oschina ⋅ 2013/09/27 ⋅ 26

自学java看什么书?

本文列出的10本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Jav...

Miss_Hello_World ⋅ 2015/06/08 ⋅ 0

Oracle宣布JDK 6"死缓":计划赶不上变化

【IT168 评论】正所谓计划赶不上变化,Oracle对JDK 6提供延长四个月的支持,目的是为JDK 7的正式出炉做好充分的过渡准备。从2012年7月到2012年11月,Oracle会一如既往的提供相应的更新支持。...

it168网站 ⋅ 2012/02/22 ⋅ 0

Java程序员必读的9本书

本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Jav...

野梦M ⋅ 2017/11/20 ⋅ 0

因为Java10发布所以学些Java8

前言 不知不觉间Java10TM都发布了,看了下新特性,好激动啊,然后回过头来继续工作,叹一口气,看着这个已经上线在改造过程中的Java7项目开始暗自神伤 总想找点代码来写,可是这些年太依赖客...

天下无敌强 ⋅ 03/31 ⋅ 0

Java8 lambda使用总结-结合实例介绍

1.Java8 新特性介绍 写java的同学对java8肯定知道 那么java8到底有哪些特性呢,总结如下: 最核心的当然是函数式编程了,写代码非常简单,请看下面详细例子介绍 2.Java8 lambda使用总结-结合...

陈小扁 ⋅ 2016/07/01 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 17分钟前 ⋅ 0

spring RESTful

spring RESTful官方文档:http://spring.io/guides/gs/rest-service/ 1. 可以这么去理解RESTful:其实就是web对外提供的一种基于URL、URI的资源供给服务。不是一个原理性知识点。是一个方法论...

BobwithB ⋅ 19分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 22分钟前 ⋅ 0

@Conditional派生注解

@Conditional派生注解(Spring注解版原生的@Conditional作用) 作用:必须是@Conditional指定的条件成立,才给容器中添加组件,配置配里面的所有内容才生效; @Conditional扩展注解 作用(判...

小致dad ⋅ 22分钟前 ⋅ 0

适配器模式

适配器模式 对象适配器 通过私有属性来实现的类适配器 通过继承来实现的接口适配器 通过继承一个默认实现的类实现的

Cobbage ⋅ 26分钟前 ⋅ 0

Java 限流策略

概要 在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速...

轨迹_ ⋅ 30分钟前 ⋅ 0

GridView和子View之间的间隙

默认的情况下GridView和子View之间会有一个间隙,原因是GridView为了在子View被选中时在子View周围显示一个框。去掉的办法如下: android:listSelector="#0000" 或 setSelector(new ColorDra...

国仔饼 ⋅ 33分钟前 ⋅ 0

idea插件开发

1 刷新页面要使用多线程 2 调试要使用restart bug 不要去关闭调试的idea 否则再次启动会卡住

林伟琨 ⋅ 33分钟前 ⋅ 0

Java 内存模型

物理机并发处理方案 绝大多数计算任务,并不是单纯依赖 cpu 的计算完成,不可避免需要与内存交互,获取数据。内存要拿到数据,需要和硬盘发生 I/O 操作。计算机存储设备与 cpu 之间的处理速度...

长安一梦 ⋅ 40分钟前 ⋅ 0

思路分析 如何通过反射 给 bean entity 对象 的List 集合属性赋值?

其实 这块 大家 去 看 springmvc 源码 肯定可以找到实现办法。 因为 spirngmvc 的方法 是可以 为 对象 参数里面的 list 属性赋值的。 我也没有看 具体的 mvc 源码实现,我这里只是 写一个 简...

之渊 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部