互斥量(Mutex)是“mutual exclusion”的缩写。互斥量是实现线程同步,和保护同时写共享数据的主要方法。 互斥量对共享数据的保护就像一把锁。在Pthreads中,任何时候仅有一个线程可以锁定互斥量,因此,当多个线程尝试去锁定该互斥量时仅有一个会成功。直到锁定互斥量的线程解锁互斥...
分类:
编程语言 时间:
2014-12-26 12:55:12
阅读次数:
204
原文:http://blog.csdn.net/ghsau/article/details/17609747
JDK5.0之前传统线程
Java线程(一):线程安全与不安全
Java线程(二):线程同步synchronized和volatile
...
分类:
编程语言 时间:
2014-12-24 01:16:30
阅读次数:
252
Lock是java.util.concurrent.locks包下的接口,Lock实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下:[jav....
分类:
编程语言 时间:
2014-12-08 17:36:24
阅读次数:
206
1.实现线程的第二种方法
提供一个实现接口Runnable的类作为线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体
class RunnableImpl implements Runnable{
public void run(){
for(int i = 0 ; i < 100 ; i ++ ;){
...
分类:
编程语言 时间:
2014-11-28 14:27:01
阅读次数:
176
一.线程的操作 构造方法:Thread(Runnable target) 创建新的线程对象 Thread(Runnable target,String name) 创建新的线程对象,并指定名字 成员方法: static Thread currentThread() 返回当前线...
分类:
编程语言 时间:
2014-11-27 06:43:08
阅读次数:
203
上篇通 过一个简单的例子说明了线程安全与不安全,在例子中不安全的情况下输出的结果恰好是逐个递增的(其实是巧合,多运行几次,会产生不同的输出结果),为什么 会产生这样的结果呢,因为建立的Count对象是线程共享的,一个线程改变了其成员变量num值,下一个线程正巧读到了修改后的num,所以会递增...
分类:
编程语言 时间:
2014-11-22 17:21:24
阅读次数:
201
上一篇文章中,我们宏观介绍了多线程的背景,今天我们上一些干货。
在展开讲解多线程之前,我们需要明白进程与线程之间的关系。
进程与线程
一个关于进程和线程的比喻很贴切:一个进程就像是工厂的一个车间,代表CPU所能处理的单个任务,任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。而车间的工人,就好比线程,一个进程可以包含多个线程。
创建线程
创建线程的方式有多种,可以直接继承Thread类,也可以实现Runnable接口实现多线程。我们可以直接new 一个Thread或者将一个Runnable传入...
分类:
编程语言 时间:
2014-11-02 16:37:52
阅读次数:
190
上一篇文章中主要讲解了Linux环境下多线程的基本概念和特性,本文将说明Linux环境下多线程的同步方式。 在《UNIX环境高级编程》第二版的“第11章 线程”中,提到了三种基本的同步机制:互斥、读写锁、条件变量。下面分别针对这三种机制进行说明:一、线程互斥 互斥意味着具有“排它性”,即两个...
分类:
编程语言 时间:
2014-10-30 19:06:50
阅读次数:
286
当一个类有父亲,但是其中的功能还希望实现线程,那么就不能采用继承Thread的方式创建线程
那么就可以通过接口的方式完成
准备扩展Demo类的功能,让其中的内容可以作为线程的任务执行
实现Runnable接口,Runnable接口中只有一个方法run
一、创建线程的第二种方法
/*
* 创建线程的第二种方法
* 1.定义类实现Runnable接口
* 2.覆盖接口...
分类:
编程语言 时间:
2014-10-09 23:47:18
阅读次数:
319