本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明:
1、使用Thread的join()方法,join()方法会阻塞主线程继续向下执行。
2、使用java.util.concurrent中的CountDownLatch,是一个倒数计数器。初始化时先设置一个倒数计数初始值,每调用一次countDown()方法,倒数值减一,他的await()方法会阻塞当前进程,直到倒数至0。
join方...
分类:
编程语言 时间:
2014-06-19 11:29:16
阅读次数:
262
在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno,如socket(), bind(), accept(), listen()。erron存放一个正整数来保存上次出错的错误值。
对线程而言,每个线程都有专用的errno变量,不必考虑同步问题。
慢系统调用
指可能永远阻塞而无法返回的系统调用,通常是一些读写的例子,如pipe,终端设备,网络连接,典...
分类:
系统相关 时间:
2014-06-19 10:35:23
阅读次数:
337
网络程序中经常会遇到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)这四种概念。同步与异步区别在于调用结果是否通过事件、回调、状态报告等方式告知调用者;同步:调用者一直等待调用结果返回;异步:调用以后不会一直等待结果,会通过事件、回调、状态报告等方式告知调用者;而阻...
分类:
系统相关 时间:
2014-06-16 07:21:16
阅读次数:
330
AsyncTask 异步任务,可以很方便的在应用中执行下载等可能阻塞UI
Thread的任务,现在分析一下它的源码。首先列出AsyncTask的一些核心方法和域:public abstract class AsyncTask {
private static final int CORE_POOL....
分类:
其他好文 时间:
2014-06-16 06:23:14
阅读次数:
230
请求/响应:所有操作的默认行为,在WSDL中表现为Input/Output元素.One_Way.在WSDL中只有Input,没有回应(Output),所以没有异常报告。单向操作只会在发出调用的瞬间阻塞客户端,但是如果发出了多个单向调用,WCF会把这些调用放入队列,由于队列是有限容量的,过多数量的调用...
分类:
其他好文 时间:
2014-06-13 06:22:06
阅读次数:
395
以前学习POSIX
THREAD时就不太理解broadcast在什么场景下使用比较合适。因为broadcast的语义是唤醒所有被阻塞的线程。当时的想法是,在系统析构时调用它比较有效,唤醒阻塞的线程,回收线程资源,然后退出系统。今天在做
lock_server 时,才了解到broadcast的用处,它...
分类:
其他好文 时间:
2014-06-12 21:22:40
阅读次数:
555
一个简单点的阻塞式tcp服务器如下所示:#include #include #include
#include ...
分类:
Web程序 时间:
2014-06-12 20:59:37
阅读次数:
280
阻塞和非阻塞IO
阻塞IO指当进行IO操作时, 如果IO操作无法立即完成,当前线程进入阻塞状态,直到IO操作完成,IO函数返回。
非阻塞IO指当进行IO操作时,如果IO操作无法立即完成,IO函数立即返回,线程不会阻塞。
写与读操作对阻塞与非阻塞IO的语义
写操作,只有完成所有指定数据的写入时,写操作才算完成。
读操作,只要能读取到数据,读操作就算完成。...
分类:
其他好文 时间:
2014-06-11 07:12:32
阅读次数:
316
Java NIO即Java Non-blocking IO(Java非阻塞I/O),因为是在Jdk1.4之后增加的一套新的操作I/O工具包,所以一般会被叫做Java New IO。NIO是为提供I/O吞吐量而专门设计,其卓越的性能甚至可以与C媲美。...
分类:
编程语言 时间:
2014-06-10 11:02:26
阅读次数:
270