线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体;进程相当于运行中程序的一种抽象。根据运行环境的调度者的身份,线程可分为内核线程和用户线程。内核线程,在有的系统上称为LWP(Light Weight Process,轻量级线程),运行在内核空间,由内核调度;用户线程运行在用户空间,由线 ...
分类:
编程语言 时间:
2016-11-25 00:29:26
阅读次数:
303
线程安全 我们这里讨论的线程安全,就限定于多个线程之间存在共享数据访问这个前提,因为如果一段代码根本不会与其他线程共享数据,那么从线程安全的角度来看,程序是串行执行还是多线程执行对它来说是完全没有区别的。 共享的数据 可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程 ...
分类:
编程语言 时间:
2016-11-25 00:14:47
阅读次数:
294
#!/bin/bash
#
a_sub(){
sleep5
}
Multi_Thread(){
THREAD=5#此处定义线程数
TMP_FIFO="/tmp/$.fifo"
/usr/bin/mkfifo$TMP_FIFO#新建一个fifo类型的文件
exec6<>$TMP_FIFO
/bin/rm-f$TMP_FIFO#将fd6指向fifo类型
for((i=0;i<$THREAD;i++));do
/bin/echo
done>&..
分类:
编程语言 时间:
2016-11-24 22:08:50
阅读次数:
155
生产者: 消费者: 多线程生产者: 多线程消费者: 多线程生产者测试类: 多线程消费者测试类: ...
分类:
其他好文 时间:
2016-11-24 18:26:38
阅读次数:
291
上一次的用的套接字如果不受到数据就会有阻塞 我们可以使用多线程技术,把数据发过去,由服务器端的线程来操作,一个线程操作一个发过去的数据,然后发回来,不会阻塞客户端 测试代码 客户端 import java.io.DataInputStream; import java.io.DataOutputSt ...
分类:
编程语言 时间:
2016-11-24 07:56:02
阅读次数:
166
本文以List作为操作对象MSDN官方给出的List的线程安全的说法:此类型的公共静态成员是线程安全的。但不能保证任何实例成员是线程安全的。只要不修改该集合,List 就可以同时支持多个阅读器。通过集合枚举在本质上不是一个线程安全的过程。在枚举与一个或多个写访问竞争的罕见情况下,确保线程安全的唯一方 ...
分类:
编程语言 时间:
2016-11-24 07:48:42
阅读次数:
241
1,sleep,wait区别 相同点:可以让线程处于冻结状态。 不同点: 1, sleep必须指定时间。 wait可以指定时间,也可以不指定时间。 2, sleep时间到,线程处于临时阻塞或者运行。 wait如果没有时间,必须要通过notify或者notifyAll唤醒。 3, sleep不一定非要 ...
分类:
编程语言 时间:
2016-11-24 06:45:21
阅读次数:
175
publicclassClerk{
privateintproduct=0;//产品默认0;
//生产者生成出来的产品交给店员
publicsynchronizedvoidaddProduct(){
if(this.product>=20){
try{
wait();//产品已满,请稍等在生产
}catch(InterruptedExceptione){
//TODO自动生成的catch块
..
分类:
编程语言 时间:
2016-11-24 00:25:22
阅读次数:
169
题目要求 数据格式 Q 系统的输入为纯文本格式的文件,由若干行组成,每一行由城市编号、年龄、收入组成,相邻两项之间用一个空格分隔。以下是输入的一个片段: 1001 20 12000 1001 50 24200 1020 30 30000 其中,城市编号是四位数(第一位不为 0),年龄与收入为整数类型 ...
分类:
编程语言 时间:
2016-11-23 22:41:16
阅读次数:
311
信号量与普通整型变量的区别: ①信号量(semaphore)是非负整型变量,除了初始化之外,它只能通过两个标准原子操作:wait(semap) , signal(semap) ; 来进行访问; ②操作也被成为PV原语(P来源于Dutch proberen"测试",V来源于Dutch verhogen ...
分类:
其他好文 时间:
2016-11-23 22:26:21
阅读次数:
213