一,线程通信简介 一般而言,在一个应用程序中(即同一个进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程和次线程之前,工作线程和用户界面线程等,这样的话,线程之间必定有一个信息传递的渠道。这种线程间的通信不但难以避免,而且在多线程的编程中,也是复....
分类:
编程语言 时间:
2015-09-05 22:15:42
阅读次数:
138
前面讲过线程之间的同步问题;同步问题主要是为了保证对共享资源的并发访问不会出错,主要的思想是一次只让一个线程去访问共享资源,我们是通过加锁的方法实现。但是有时候我们还需要安排几个线程的执行次序,而在系统内部线程的调度是透明的,没有办法准确的控制线程的切换。所以Java提供了一种机制来保证线程之间的协调运行,这也就是我们所说的线程调度。在下面我们会介绍三种用于线程通信的方式,并且每种方式都会使用生产者...
分类:
编程语言 时间:
2015-08-31 21:45:28
阅读次数:
238
创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和...
分类:
其他好文 时间:
2015-08-28 15:34:23
阅读次数:
152
总结学习,我认为是一个非常好的学习方法。
多线程
我从以下几个方面进行知识总结:
一、概述
操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。
注:现代的操作系统都支持多进程的并发,但在具体的额是想爱你细节上可能因为硬件和操作系统的不同而采用不同的策略:如共用式、抢占式等。
一般,进程包含如下三个特征:
(1)独...
分类:
编程语言 时间:
2015-08-28 13:26:54
阅读次数:
234
Android消息机制 本文首先从整体架构分析了Android整个线程间消息传递机制,然后从源码角度介绍了各个组件的作用和完成的任务。文中并未对基础概念进行介绍,关于threadLacal和垃圾回收等等机制请自行研究。基础架构 首先,我们需要从整体架构上了解一下Android线程通信都做了哪些工作。...
分类:
移动开发 时间:
2015-08-25 13:13:51
阅读次数:
197
Android消息机制 本文首先从整体架构分析了Android整个线程间消息传递机制,然后从源码角度介绍了各个组件的作用和完成的任务。文中并未对基础概念进行介绍,关于threadLacal和垃圾回收等等机制请自行研究。基础架构 首先,我们需要从整体架构上了解一下Android线程通信都做了哪些工作。...
分类:
移动开发 时间:
2015-08-25 11:55:38
阅读次数:
247
//一个线程之间的通信
DWORD WINAPI firstthread(void *p)
{
MessageBoxA(0, "1", "1", 0);
printf("第1个线程执行完成\n");
SetEvent(event[0]);//发出事件信号
return 0;
}
DWORD WINAPI secondthread(void *p)
{
WaitForS...
分类:
编程语言 时间:
2015-08-21 15:41:12
阅读次数:
224
概述
进程是资源分配的基本单位,进程由线程组成。
线程是系统执行调度的基本单位,线程隶属于进程。
为何引入线程
1、进程在同一时间只能干一件事,比如我们在上课的时候,往往要耳朵听课,手记笔记,脑子思考,如果套用进程的机制,那么我们听课的时候也不能记录笔记,更不能思考。
2、当进程某个操作阻塞时,整个进程就会挂起,也就是说当老师讲课时需要思考的时候,我们也还只能听课,不能思考也不能记录...
分类:
编程语言 时间:
2015-08-20 17:02:12
阅读次数:
145
Java 多线程
在Java中,线程类Thread创建方式有两种:一是继承Thread类,重写run方法;二是,实现Runnable接口。大多数情况下,推荐使用第二种方式,实现runnable接口,这样可以很好的将任务与执行单元分离,更加突出面向对象的思想。
在JDK1.5之前,线程间互斥主依靠内置锁(监视器),而线程间通信则采用Object实例的wait,notify等方法。在JDK1.5之...
分类:
编程语言 时间:
2015-08-19 16:51:23
阅读次数:
141
在上一篇博文中,我们介绍了利用socket进行简单的UDP/TCP的服务端和客户端的通信。
(一)
在基于UDP的程序中,你有没有想过,如果我的这台主机在通讯的时候要求既能够收到别的主机发来的数据,又能够自己向目的主机发出数据,该怎样实现?也就是说需要两个while循环同时进行。答案是使用多线程,一个线程用于接受数据,另一个线程用来发送数据。接下来我们介绍WinSock的多线程编程。
多线程...
分类:
编程语言 时间:
2015-08-18 19:18:10
阅读次数:
130