自己个人根据线程池的思想写的小程序,老鸟 大虾些就不要笑话小弟了
#include
/* -------------------------------------------------------------------------
* log.h
* -------------------------------------------------------------------------
*/
#ifndef __LOG_H
#define __LOG_H
#include
最近在写一个爬虫,用到多线程,定义一个队列url_queue,所有的线程都从这个队列获得url,然后下载页面,解析页面,获得页面中的url,然后把这些获得的url推入url_queue中,我设想线程的停止条件应该是所有的子线程都暂停了,而且url_queue为空,可是这个停止条件我看threading模块却不知道如何实现,threading模块的join不行,因为我的子线程都是while True循环,而Queue的join似乎也不行,我翻了下Queue的源码,发现有个unfinish...
线程池功能 应用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态。为了简化对这些线程的管理,.NET框架为每个进程提供了一个线程池,一个线程池有若干个等待操作状态,当一个等待操作完成时,线程池中的辅助线程会执行回调函数。线程池中的线程由系统管理,程序员不需要费力于线程管理,可以集中精力处理应...
实现代码: #coding:utf-8 import Queue import threading import sys import time import urllib #替我们工作的线程池中的线程 class MyThread(threading.Thread): def __init__(self, workQueue, resultQueue,timeout=30, **kwargs): threading.Thread.__init__(self, kwargs=kwargs) #线程在结束前等待任务队列多长时间 self.timeout = timeout self.setDaemon(True) self.workQueue = workQueue self.resultQueu...
这只是一个线程池的框架还有许多不足 : 没有实现server->client数据发送 , 还有许多细节没有完善。 Lock.cpp : 锁的操作 , 读锁可以并发 , 写锁独占. Queue.h : 队列的封装 , 队列的读和写都加了锁的保护. Socket.cpp : 套接口的简单封装. Thread.cpp : 线程的封装实现了些简单的线程停止,运行等功能 , 启动别的线程的时候需要继承次类. Worker.cpp : 用户接口类 , 用户需继承此类。 ListenThread.cpp(继承Threa...
我想在程序中一开始就创建了N个空闲线程,后面有任务时就将任务分配给空闲的进程让他执行。 1。pthread_create是不是一创建就开始运行?如何使得成为空闲线程? 2。任务来时,我如何让空闲的线程运行,运行完毕后又回到空闲状态?
在IBM网站里找到了一个Python 线程池的例子。 我在执行这个例子,程序却挂起了。哪位大侠能帮忙看看到底是怎么回事吗? import Queue import threading import urllib2 import time hosts = ["http://www.sina.com.cn/", "http://www.163.com/", "http://www.sohu.com/","http://ibm.com.cn", "http://apple.com.cn"] queue =Queue.Queue(0) class ThreadUrl(threading.Thread): #threaded url Grab def __init__(self,que...