⑴ 关于python多线程问题求解
看下面的代码 你就理解了,至于业务逻辑自己去实现
#coding:utf-8
importthreading
if__name__=="__main__":
obj={'test':'关于python多线程问题求解'}
t=threading.Thread(target=Run_One,args=(obj,))
t.setDaemon(False)
t.start()
defRun_One(objvalue):
ls_threadone=[]#线程集合
foriinrange(1,8):
t=threading.Thread(target=Run_Two,args=(i,objvalue))
t.setDaemon(False)
t.start()
ls_threadone.append(t)
fortinls_threadone:
t.join()#等待所有线程执行完毕如果禁用那么直接向下执行
print("线程全部执行完毕")defRun_Two(types,dataList):
print("多个参数传递")
⑵ 怎么判断ThreadPool线程池里的任务都执行完毕
c# ThreadPool 判断子线程全部执行完毕的四种方法
1、先来看看这个
多线程编程
多线程用于数据采集时,速度明显很快,下面是基本方法,把那个auto写成采集数据方法即可。
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
ThreadPool.SetMaxThreads(3, 3); //设置最大线程数
for (int i = 0; i < 10; i++)
{
⑶ 怎么判断一个函数是否执行完毕并且记录此函数没有执行
函数搁在那里,执行完毕才会进入下一步,所以这个问题除非发生在多线程,才会有其他答案。可以设置一个变量连通2个线程,再另一个线程里判断这个变量是否被赋值,而在等待的线程中给哪个方法函数返回值,就可以了!
⑷ python 多线程状态
一般在子线程/进程里打印信息,来判断不同线程/进程运行到了指定位置。
类的方式实例化后,可以调用is_alive()方法判断是否在运行。
下面这里有个例子可以试试,有注释,会python的话应该直接就能看懂。
http://study.163.com/forum/detail/664022.htm
⑸ 多线程下如何判断线程全部执行完了呢
List<Thread> arr = new List<Thread>();
for (int i =0; i <90; i=i+5) //循环创建线程
{
Thread myThread =new Thread(delegate() {catchdate(i,key);});
myThread.Start();
arr.Add(myThread);
}
foreach(Thread t in arr){
while(t.IsAlive){
Thread.Sleep(10);
}
}
// 走到这里,所有线程都结束了,哈哈
⑹ python编程中线程结束的问题
def _exitCheckfunc():
print "ok"
try:
while 1:
alive=False
if thread_.isAlive():
alive=True
if not alive:
break
time.sleep(1)
#为了使得统计时间能够运行,要捕捉 KeyboardInterrupt :ctrl-c
except KeyboardInterrupt, e:
traceback.print_exc()
print "consume time :",time.time()-start
threading._shutdown=_exitCheckfunc
自己在主线程中写一个死循环来接受ctrl+c的信号。
或者用进程监控 :
http://code.activestate.com/recipes/496735-workaround-for-missed-sigint-in-multithreaded-prog/
⑺ 如何判断线程已执行完毕
其中一个线程?使用类变量判断就可以了。
class A{
static boolean aStop = false;
static void test(){
new AThread().start();
while(! aStop){
}
System.out.println("AThread stoped.");
}
class AThread extends Thread{
public void run(){
/////////////////////////
aStop = true;
}
}
}
⑻ python线程 问题请教,怎么保证子线程执行完毕
首先子线程必须由主线程启动,所以严格意义上的“子线程结束后再执行主线程”是不可能实现,你的意思应该是:主线程创建完子线程后,等待子线程退出,在继续执行。 你的代码基本没有多大问题,只是 Join 方法位置放置不对。 thread1.Start(); // 先启动所有子线程 thread2.Start(); thread3.Start(); thread4.Start(); thread5.Start(); thread1.Join(); // 然后在等待子线程退出 thread2.Join(); thread3.Join(); thread4.Join(); thread5.Join(); 你先前的代码: thread1.Start(); // 线程1 启动 thread1.Join(); // 等待 线程1 退出,线程1 未退出前,后面代码无法执行 thread2.Start(); // 以下代码,均同上所述。 thread2.Join(); thread3.Start(); thread3.Join(); thread4.Start(); thread4.Join();
⑼ python 主程序结束的时候线程是否结束问题2个问题
第一个问题:因为主进程已经结束,相关的资源已经释放,而线程还在后台运行,所以会导致线程找不到相关的资源和定义
第二个问题:因为主程序结束的时候,并没有等待子线程结束,也没有强制关闭子线程,因此还在后台运行,有两个办法可以让他们同时结束,一个办法是在在构建进程的时候增加参数 deamon=True, 第二个办法就是在程序最后增加thread1.join(),thread2.join()
⑽ 如何判断线程池所有任务是否执行完毕
void shutdown()
启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用。
抛出:
SecurityException- 如果安全管理器存在并且关闭,此 ExecutorService 可能操作某些不允许调用者修改的线程(因为它没有保持RuntimePermission("modifyThread")),或者安全管理器的checkAccess方法拒绝访问。
isTerminated
如果关闭后所有任务都已完成,则返回true。注意,除非首先调用shutdown或shutdownNow,否则isTerminated永不为true。
返回:
如果关闭后所有任务都已完成,则返回true