Python论坛  - 讨论区

标题:[python-chinese] 请教python线程问题

2007年07月16日 星期一 14:56

Yuri yuri.linux在gmail.com
星期一 七月 16 14:56:29 HKT 2007

有点搞不太明白这个东西.
我的程序是这样的,我要他去打开串口,然后有一个函数是循环去读取串口送来的数据,然后有另一个函数来写串口因为有时还需要向串口发送东西.
我不确定是否要用线程来做?
我看了一些threading的文章,写的比较模糊,不太了解其中原理,怎么个流程.忘高手指定迷津.
谢谢!


-- 
Best regards
Yuri
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/5e9bad98/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月16日 星期一 15:23

Xell Zhang xellzhang在gmail.com
星期一 七月 16 15:23:50 HKT 2007

ÎҵĸоõÊÇ£¬Ó¦¸ÃÒªÓÃỊ̈߳¬²»È»¼àÌýµÄʱºò³ÌÐòûÓÐÏìÓ¦¡£
def listener() {
    while True:
        # do something....

def sender() {
    while True:
        while ....: # when it needs to send
            # send...

if __name__ == '__main__':
    threading.Thread(None, listener).start();
    threading.Thread(None, sender).start();

Á½¸ö½ø³ÌÓ¦¸ÃÐèÒª¹²ÏíһЩÊý¾Ý£¬×¢ÒâÔÚ¶ÁдÊý¾ÝµÄʱºò¼ÓËø¡£Âú×ãÒ»¶¨Ìõ¼þµÄʱºòbreak³öÑ­»·£¬¾Í½áÊøÁË¡£
ÎÒÏëµÃ±È½Ï¼òµ¥£¬²»ÖªµÀÓÐûÓдíÎó¡£

On 7/16/07, Yuri <yuri.linux在gmail.com> wrote:
>
> Óеã¸ã²»Ì«Ã÷°×Õâ¸ö¶«Î÷.
> ÎҵijÌÐòÊÇÕâÑùµÄ,ÎÒÒªËûÈ¥´ò¿ª´®¿Ú,È»ºóÓÐÒ»¸öº¯ÊýÊÇÑ­»·È¥¶ÁÈ¡´®¿ÚËÍÀ´µÄÊý¾Ý,È»ºóÓÐÁíÒ»¸öº¯ÊýÀ´Ð´´®¿ÚÒòΪÓÐʱ»¹ÐèÒªÏò´®¿Ú·¢ËͶ«Î÷.
> ÎÒ²»È·¶¨ÊÇ·ñÒªÓÃÏß³ÌÀ´×ö?
> ÎÒ¿´ÁËһЩthreadingµÄÎÄÕÂ,дµÄ±È½ÏÄ£ºý,²»Ì«Á˽âÆäÖÐÔ­Àí,Ôõô¸öÁ÷³Ì.Íü¸ßÊÖÖ¸¶¨ÃÔ½ò.
> лл!
>
>
> --
> Best regards
> Yuri
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Zhang Xiao

Engineer, Web development

Ethos Tech.
http://www.ethos.com.cn
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/a8cfa539/attachment-0001.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月16日 星期一 15:44

Yuri yuri.linux在gmail.com
星期一 七月 16 15:44:41 HKT 2007

非常感谢,解释的很简洁明了,让我一看就能明白.
现在还有一个问题就是因为我的程序开始的时候初始化了串口,退出程序的时候也必须释放串口,我需要先把线程stop掉然后释放串口.
要中止一个线程用
threading.Thread(None, listener).stop();么?

Thank's


在07-7-16,Xell Zhang <xellzhang在gmail.com> 写道:
>
> 我的感觉是,应该要用线程,不然监听的时候程序没有响应。
> def listener() {
>     while True:
>         # do something....
>
> def sender() {
>     while True:
>         while ....: # when it needs to send
>             # send...
>
> if __name__ == '__main__':
>     threading.Thread(None, listener).start();
>     threading.Thread(None, sender).start();
>
> 两个进程应该需要共享一些数据,注意在读写数据的时候加锁。满足一定条件的时候break出循环,就结束了。
> 我想得比较简单,不知道有没有错误。
>
>  On 7/16/07, Yuri <yuri.linux在gmail.com> wrote:
>
> >  有点搞不太明白这个东西.
> > 我的程序是这样的,我要他去打开串口,然后有一个函数是循环去读取串口送来的数据,然后有另一个函数来写串口因为有时还需要向串口发送东西.
> > 我不确定是否要用线程来做?
> > 我看了一些threading的文章,写的比较模糊,不太了解其中原理,怎么个流程.忘高手指定迷津.
> > 谢谢!
> >
> >
> > --
> > Best regards
> > Yuri
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
>
> --
> Zhang Xiao
>
> Engineer, Web development
>
> Ethos Tech.
> http://www.ethos.com.cn
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Best regards
Yuri
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/51b680f1/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月16日 星期一 16:06

Xell Zhang xellzhang在gmail.com
星期一 七月 16 16:06:00 HKT 2007

ºÃÏñÏß³ÌÖÐÀàËÆÓÚÔÝÍ££¬ÖÐÖ¹£¬»Ö¸´Ò»ÀàµÄ·½·¨ÔÚpythonÎÒ¶¼Ã»ÓÐÓõ½¹ý£¬Ò²²»ÖªµÀÓÐûÓС£
µ«ÊǸù¾ÝÄãµÄÒªÇó£¬ÄãÖ»ÒªÔÚº¯ÊýÍ·²¿³õʼ»¯¶Ë¿Ú£¬ÔÚº¯ÊýÍ˳ö֮ǰÊͷŶ˿ھͿÉÒÔÁË°¡¡£²»ÐèÒªÖÐÖ¹Ïß³ÌÔÙÊͷŶ˿ڡ£¶øÇÒÎÒ¾õµÃÕâÑùÂß¼­ÉÏ¿É¿ØÖƵĸüºÏÀíһЩ¡£

On 7/16/07, Yuri <yuri.linux在gmail.com> wrote:
>
> ·Ç³£¸Ðл,½âÊ͵ĺܼò½àÃ÷ÁË,ÈÃÎÒÒ»¿´¾ÍÄÜÃ÷°×.
> ÏÖÔÚ»¹ÓÐÒ»¸öÎÊÌâ¾ÍÊÇÒòΪÎҵijÌÐò¿ªÊ¼µÄʱºò³õʼ»¯ÁË´®¿Ú,Í˳ö³ÌÐòµÄʱºòÒ²±ØÐëÊÍ·Å´®¿Ú,ÎÒÐèÒªÏÈ°ÑÏß³ÌstopµôÈ»ºóÊÍ·Å´®¿Ú.
> ÒªÖÐÖ¹Ò»¸öÏß³ÌÓÃ
> threading.Thread(None, listener).stop();ô?
>
> Thank's
>
>
> ÔÚ07-7-16£¬Xell Zhang <xellzhang在gmail.com> дµÀ£º
> >
> > ÎҵĸоõÊÇ£¬Ó¦¸ÃÒªÓÃỊ̈߳¬²»È»¼àÌýµÄʱºò³ÌÐòûÓÐÏìÓ¦¡£
> > def listener() {
> >     while True:
> >         # do something....
> >
> > def sender() {
> >     while True:
> >         while ....: # when it needs to send
> >             # send...
> >
> > if __name__ == '__main__':
> >     threading.Thread(None, listener).start();
> >     threading.Thread(None, sender).start();
> >
> > Á½¸ö½ø³ÌÓ¦¸ÃÐèÒª¹²ÏíһЩÊý¾Ý£¬×¢ÒâÔÚ¶ÁдÊý¾ÝµÄʱºò¼ÓËø¡£Âú×ãÒ»¶¨Ìõ¼þµÄʱºòbreak³öÑ­»·£¬¾Í½áÊøÁË¡£
> > ÎÒÏëµÃ±È½Ï¼òµ¥£¬²»ÖªµÀÓÐûÓдíÎó¡£
> >
> >  On 7/16/07, Yuri < yuri.linux在gmail.com> wrote:
> >
> > >  Óеã¸ã²»Ì«Ã÷°×Õâ¸ö¶«Î÷.
> > > ÎҵijÌÐòÊÇÕâÑùµÄ,ÎÒÒªËûÈ¥´ò¿ª´®¿Ú,È»ºóÓÐÒ»¸öº¯ÊýÊÇÑ­»·È¥¶ÁÈ¡´®¿ÚËÍÀ´µÄÊý¾Ý,È»ºóÓÐÁíÒ»¸öº¯ÊýÀ´Ð´´®¿ÚÒòΪÓÐʱ»¹ÐèÒªÏò´®¿Ú·¢ËͶ«Î÷.
> > > ÎÒ²»È·¶¨ÊÇ·ñÒªÓÃÏß³ÌÀ´×ö?
> > > ÎÒ¿´ÁËһЩthreadingµÄÎÄÕÂ,дµÄ±È½ÏÄ£ºý,²»Ì«Á˽âÆäÖÐÔ­Àí,Ôõô¸öÁ÷³Ì.Íü¸ßÊÖÖ¸¶¨ÃÔ½ò.
> > > лл!
> > >
> > >
> > > --
> > > Best regards
> > > Yuri
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese在lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request在lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> >
> >
> >
> > --
> > Zhang Xiao
> >
> > Engineer, Web development
> >
> > Ethos Tech.
> > http://www.ethos.com.cn
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
>
> --
> Best regards
> Yuri
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Zhang Xiao

Engineer, Web development

Ethos Tech.
http://www.ethos.com.cn
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/f6804d43/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年07月16日 星期一 16:13

Yuri yuri.linux在gmail.com
星期一 七月 16 16:13:22 HKT 2007

好的.我晚上写程序,有问题继续在这里请教你.
非常感谢.


在07-7-16,Xell Zhang <xellzhang在gmail.com> 写道:
>
> 好像线程中类似于暂停,中止,恢复一类的方法在python我都没有用到过,也不知道有没有。
> 但是根据你的要求,你只要在函数头部初始化端口,在函数退出之前释放端口就可以了啊。不需要中止线程再释放端口。而且我觉得这样逻辑上可控制的更合理一些。
>
> On 7/16/07, Yuri < yuri.linux在gmail.com> wrote:
> >
> > 非常感谢,解释的很简洁明了,让我一看就能明白.
> > 现在还有一个问题就是因为我的程序开始的时候初始化了串口,退出程序的时候也必须释放串口,我需要先把线程stop掉然后释放串口.
> > 要中止一个线程用
> > threading.Thread(None, listener).stop();么?
> >
> > Thank's
> >
> >
> > 在07-7-16,Xell Zhang <xellzhang在gmail.com> 写道:
> > >
> > > 我的感觉是,应该要用线程,不然监听的时候程序没有响应。
> > > def listener() {
> > >     while True:
> > >         # do something....
> > >
> > > def sender() {
> > >     while True:
> > >         while ....: # when it needs to send
> > >             # send...
> > >
> > > if __name__ == '__main__':
> > >     threading.Thread(None, listener).start();
> > >     threading.Thread(None, sender).start();
> > >
> > > 两个进程应该需要共享一些数据,注意在读写数据的时候加锁。满足一定条件的时候break出循环,就结束了。
> > > 我想得比较简单,不知道有没有错误。
> > >
> > >  On 7/16/07, Yuri < yuri.linux在gmail.com> wrote:
> > >
> > > >  有点搞不太明白这个东西.
> > > > 我的程序是这样的,我要他去打开串口,然后有一个函数是循环去读取串口送来的数据,然后有另一个函数来写串口因为有时还需要向串口发送东西.
> > > > 我不确定是否要用线程来做?
> > > > 我看了一些threading的文章,写的比较模糊,不太了解其中原理,怎么个流程.忘高手指定迷津.
> > > > 谢谢!
> > > >
> > > >
> > > > --
> > > > Best regards
> > > > Yuri
> > > > _______________________________________________
> > > > python-chinese
> > > > Post: send python-chinese在lists.python.cn
> > > > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > > > Unsubscribe: send unsubscribe to
> > > > python-chinese-request在lists.python.cn
> > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > >
> > >
> > >
> > > --
> > > Zhang Xiao
> > >
> > > Engineer, Web development
> > >
> > > Ethos Tech.
> > > http://www.ethos.com.cn
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese在lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request在lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> >
> >
> >
> > --
> > Best regards
> > Yuri
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
>
> --
> Zhang Xiao
>
> Engineer, Web development
>
> Ethos Tech.
> http://www.ethos.com.cn
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
Best regards
Yuri
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070716/5ff26edf/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号