#-*-coding:utf-8-*-
importQueue
importthreading
importtime
q=Queue.Queue(100000)
defproducer():
foriinrange(1000):
q.put(i)
time.sleep(0)
defconsumer():
foriinrange(1000):
printq.get(),q.qsize()
time.sleep(0)
threads=[]
th=threading.Thread(target=cons..
分类:
编程语言 时间:
2015-08-14 19:34:35
阅读次数:
161
写在前面的话:关于remote service中使用aidl来实现跨进程,多线程通信,我是参考了三篇文章,大概把这个弄明白了。
(1)android 官方关于aidl的说明文档
docs/guide/components/aidl.html
(2)Android学习笔记23服务Service之AIDL和远程服务实现进程通信以及进程间传递自定义类型参数
http://blog.csdn.net...
分类:
移动开发 时间:
2015-08-12 01:22:04
阅读次数:
220
说明在并发编程中一个典型的问题是生产者–消费者问题。在程序中,有可能会需要用到两个线程通信的情况,比如生产者消费者中,获取一个共享数据,有就消费。没有就等待着生产者生产之后再继续消费。那么这个实现过程就可以使用wait();notify();notifyAll()来达到效果;
以上方法详细解说请查看: Java多线程系列–“基础篇”05之 线程等待与唤醒例子/**
* Created by zh...
分类:
编程语言 时间:
2015-08-08 18:15:44
阅读次数:
223
package com.test;
/**
*
* @author taoweiwei
* 问题:子线程循环10次,接着主线程循环100,接着又回到子线程10次,
* 接在再回到主线程又循环100,如此循环50次,请写出程序。
* 经验:1、要用到共同数据(包括同步锁)的若干个方法应该归属在同一个类身上,
* 这种设计正好体现了高类聚和程序的健壮性。
*...
分类:
编程语言 时间:
2015-08-08 13:38:48
阅读次数:
122
每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法:1.iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。
2.N...
分类:
编程语言 时间:
2015-08-07 16:11:43
阅读次数:
212
线程通信:CThreadDome文件名
1.通过全局变量
2.发消息
2.1给窗口发消息
#define SEND_DATA (WM_USER+1)//定义处理消息的宏
UINT _cdecl CThreadDomeThreadDlg::Tread(LPVOID lpvoid)//线程函数
{
CThreadDomeDlg *pThis=(CThreadDomeD...
分类:
编程语言 时间:
2015-08-07 00:29:44
阅读次数:
207
线程通信--多生产者多消费者问题 多生产者,多消费者会导致线程死锁的情况。public class RoastDuck { public static void main(String[] args) { Duck d = new Duck(); ...
分类:
编程语言 时间:
2015-08-06 12:54:12
阅读次数:
141
多线程
线程(thread)技术早在60年代就被提出来了,但真正应用多线程到操作系统中去,实在80年代中期,solaris是这方面的佼佼者。传统的UNIX也支持线程的概念,但是在一个进程中只允许有一个线程,这样多线程就意味着多进程。现在多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux。
优点:
和进程相比,它是一种非常“节俭”的多任务操作方式。在linux系统下,启动...
分类:
编程语言 时间:
2015-08-04 11:15:06
阅读次数:
109
为了充分利用CPU多核特性,Chromium在启动时会创建很多线程,来负责执行不同的操作。这样就涉及到了多线程通信问题。Chromium为每一个线程都创建了一个消息队列。当一个线程需要另一个线程执行某一操作时,就向该线程的消息队列发送一个Callback。这个Callback最终在目标线程中得到执行。这种基于Callback的多线程通信方式在Chromium中很普通,因此本文就对它的实现进行分析。...
分类:
编程语言 时间:
2015-07-13 06:37:53
阅读次数:
146
通过直接继承Thread, 实现Runnable接口来创建线程。但这两种方式都有一种缺陷:在执行完任务之后无法获得执行结果。 如果需要获得执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来比较麻烦,而jdk中Callable和Future,通过他们可以在任务执行完毕...
分类:
其他好文 时间:
2015-06-30 08:58:55
阅读次数:
170