Java
synchronized详解第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,...
分类:
编程语言 时间:
2014-05-01 22:27:03
阅读次数:
735
Semaphore是一个计数的信号量,可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如实现一个文件允许的线程访问数。打个通俗的比喻,Semaphore实现的功能类似厕所有4个坑,假如有10个人上厕所,那么同时有多少个人去上厕所呢?同时只.....
分类:
编程语言 时间:
2014-05-01 18:41:21
阅读次数:
353
#include #include
//using namespace std;
DWORD WINAPI Fun1Proc(
LPVOID lpParameter // thread data
);
DWORD WINAPI Fun2Proc(
LPVOID lpParameter // thread data
);
int index=0;
int tickets=100;...
分类:
编程语言 时间:
2014-05-01 18:25:42
阅读次数:
323
1 #include 2 #include 3 #include 4 #include 5 6
typedef void* (*fun)(void*); 7 8 fun fun1, fun2; 9 10 pthread_mutex_t pmu =
PTHREAD_MUTEX_INITI...
分类:
编程语言 时间:
2014-05-01 06:36:02
阅读次数:
427
在进入java平台的线程对象之前,基于基础篇(一)的一些问题,我先插入两个基本概念。
[线程的并发与并行]
在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurr.....
分类:
编程语言 时间:
2014-05-01 06:09:22
阅读次数:
459
String 的大小是固定的,在进行+运算时会生成新的对象。
StringBulider和StringBuffer都是动态的,但是StringBulider不是线程安全的,而StringBuffer是线程安全的。
建议:
字符串不经常修改可以使用String
字符串经常修改且单线程使用,可以用StringBulider
字符串经常修改且多线程使用,推荐StringBuffer...
分类:
其他好文 时间:
2014-04-30 22:31:39
阅读次数:
215
AbstractQueuedSynchronizer,简称AQS,是java.util.concurrent包的synchronizer的基础框架,其它的synchronizer(包括Lock、Semaphore、CountDownLatch、FutureTask等)都是以它作为基础构建的,这篇文章我将对AQS的框架结构作出介绍,包括它对同步状态的管理,功能流程,等待队列的管理等,并涉及到一些实现...
分类:
其他好文 时间:
2014-04-30 22:12:38
阅读次数:
421
一,多线程概述
1. 进程和线程
计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行.假定工厂的电力有限,一次只能给一个车间使用,也就是说,一个车间开工的时候,其他车间都必须停工,背后的含义就是,单个CPU一次只能运行一个任务.进程就好比工厂的车间,它代表CPU所能处理的单个任务,任一时刻,CPU总是运行一个进程,其他进程处于非运行状态.一个车间里,可以有很多工人,他们协...
分类:
编程语言 时间:
2014-04-29 13:43:20
阅读次数:
276
多线程编程--异步转同步之CountDownLatch...
分类:
编程语言 时间:
2014-04-29 13:23:21
阅读次数:
412
在Java多线程程序中,由于线程调度,指令间的次序在每次运行时都可能不相同,有时候,我们需要得到指令次序,用来分析程序的行为。这样细粒度的底层行为用一般方法很难完成,我们需要借助 JVM Tool Interface,即JVMTI,来帮助我们获取Java虚拟机执行时的信息。本文先介绍编写JVMTI程序的基本框架,然后介绍如何使用JVMTI来获取多线程程序中指令之间的次序。...
分类:
编程语言 时间:
2014-04-29 13:11:22
阅读次数:
892