在python中创建线程

我有一个脚本,我想要一个功能与另一个同时运行。


我看过的示例代码:


import threading


def MyThread (threading.thread):

    # doing something........


def MyThread2 (threading.thread):

    # doing something........


MyThread().start()

MyThread2().start()

我无法正常工作。我宁愿使用线程函数而不是类来实现。


这是工作脚本:


from threading import Thread


class myClass():


    def help(self):

        os.system('./ssh.py')


    def nope(self):

        a = [1,2,3,4,5,6,67,78]

        for i in a:

            print i

            sleep(1)



if __name__ == "__main__":

    Yep = myClass()

    thread = Thread(target = Yep.help)

    thread2 = Thread(target = Yep.nope)

    thread.start()

    thread2.start()

    thread.join()

    print 'Finished'


梦里花落0921
浏览 359回答 3
3回答

MM们

您不需要使用子类Thread来完成这项工作 - 看看我在下面发布的简单示例,看看如何:from threading import Threadfrom time import sleepdef threaded_function(arg):    for i in range(arg):        print("running")        sleep(1)if __name__ == "__main__":    thread = Thread(target = threaded_function, args = (10, ))    thread.start()    thread.join()    print("thread finished...exiting")这里我展示了如何使用线程模块创建一个调用普通函数作为其目标的线程。你可以看到我如何在线程构造函数中传递我需要的任何参数。

FFIVE

您的代码存在一些问题:def MyThread ( threading.thread ):你不能用函数子类化; 只有一堂课如果您打算使用子类,则需要threading.Thread,而不是threading.thread如果你真的只想用函数做这个,你有两个选择:使用线程:import threadingdef MyThread1():    passdef MyThread2():    passt1 = threading.Thread(target=MyThread1, args=[])t2 = threading.Thread(target=MyThread2, args=[])t1.start()t2.start()有线程:import threaddef MyThread1():    passdef MyThread2():    passthread.start_new_thread(MyThread1, ())thread.start_new_thread(MyThread2, ())doc for thread.start_new_thread

慕桂英3389331

我试图添加另一个join(),它似乎工作。这是代码from threading import Threadfrom time import sleepdef function01(arg,name):for i in range(arg):    print(name,'i---->',i,'\n')    print (name,"arg---->",arg,'\n')    sleep(1)def test01():    thread1 = Thread(target = function01, args = (10,'thread1', ))    thread1.start()    thread2 = Thread(target = function01, args = (10,'thread2', ))    thread2.start()    thread1.join()    thread2.join()    print ("thread finished...exiting")test01()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python