自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)便快捷的Python開發(fā)工具介紹

開發(fā) 后端
在Python開發(fā)工具里面最基礎(chǔ)的多線程機(jī)制接口就是thread module,這個(gè)多線程的接口是用C語(yǔ)言來(lái)實(shí)現(xiàn)的,建立在thread module的基礎(chǔ)上。

Python開發(fā)工具是一個(gè)具有更高層的多線程機(jī)制接口,比如threding module,threading module是一個(gè)標(biāo)準(zhǔn)庫(kù)中的module,用Python語(yǔ)言實(shí)現(xiàn),Python可以使用戶避免過分的語(yǔ)法的羈絆而將精力主要集中到所要實(shí)現(xiàn)的程序任務(wù)上。

我們的目標(biāo)是要剖析Python開發(fā)工具中的多線程機(jī)制是如何實(shí)現(xiàn)的,而非學(xué)習(xí)在Python中如何進(jìn)行多線程編程,所以重點(diǎn)會(huì)放在thread module上。通過這個(gè)module,看一看Python對(duì)操作系統(tǒng)的原生線程機(jī)制所做的精巧的包裝。

我們通過下面所示的thread1.py開始充滿趣味的多線程之旅,在thread module中,Python向用戶提供的多線程機(jī)制的接口其實(shí)可以說(shuō)少得可憐。當(dāng)然,也正因?yàn)槿绱?,才?FONT size=+0>Python中的多線程編程變得非常的簡(jiǎn)單而方便。我們來(lái)看看在thread module的實(shí)現(xiàn)文件threadmodule.c中,thread module為Python使用者提供的所有多線程機(jī)制接口。

  1. [thread1.py]  
  2.  
  3. import thread  
  4.  
  5. import time  
  6.  
  7. def threadProc():  
  8.  
  9.     print 'sub thread id : ', thread.get_ident()  
  10.  
  11.     while True:  
  12.  
  13.         print "Hello from sub thread ", thread.get_ident()  
  14.  
  15.         time.sleep(1)  
  16.  
  17. print 'main thread id : ', thread.get_ident()  
  18.  
  19. thread.start_new_thread(threadProc, ())  
  20.  
  21. while True:  
  22.  
  23.     print "Hello from main thread ", thread.get_ident()  
  24.  
  25.     time.sleep(1)  
  26. [threadmodule.c]  
  27.  
  28. static PyMethodDef thread_methods[] = {  
  29.  
  30.     {"start_new_thread", (PyCFunction)thread_PyThread_start_new_thread,…},  
  31.  
  32.     {"start_new",    (PyCFunction)thread_PyThread_start_new_thread, …},  
  33.  
  34.     {"allocate_lock",    (PyCFunction)thread_PyThread_allocate_lock, …},  
  35.  
  36.     {"allocate",     (PyCFunction)thread_PyThread_allocate_lock, …},  
  37.  
  38.     {"exit_thread", (PyCFunction)thread_PyThread_exit_thread, …},  
  39.  
  40.     {"exit",          (PyCFunction)thread_PyThread_exit_thread, …},  
  41.  
  42.     {"interrupt_main", (PyCFunction)thread_PyThread_interrupt_main,…},  
  43.  
  44.     {"get_ident",       (PyCFunction)thread_get_ident, …},  
  45.  
  46.     {"stack_size",      (PyCFunction)thread_stack_size, …},  
  47.  
  48.     {NULL,          NULL}       /* sentinel */  
  49.  
  50. }; 

我們發(fā)現(xiàn),thread module中有的接口居然以不同的形式出現(xiàn)了兩次,比如“start_new_thread”“start_new”,實(shí)際上在Python開發(fā)工具內(nèi)部,對(duì)應(yīng)的都是thread_ PyThread_start_new_thread這個(gè)函數(shù)。所以,thread module所提供的接口,真的是少得可憐。在我們的thread1.py中我們使用了其中兩個(gè)接口。關(guān)于這兩個(gè)接口的詳細(xì)介紹,請(qǐng)參閱Python文檔。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
相關(guān)推薦

2010-03-15 15:55:00

Python開發(fā)工具

2010-03-10 09:55:56

Python開發(fā)工具

2017-01-05 14:28:43

Linux內(nèi)核代碼源碼

2010-06-03 12:41:45

Linux 開發(fā)工具

2011-08-05 10:13:45

iPhone開發(fā)工具 Cocoa Xcode

2020-11-19 10:05:03

Java

2011-08-04 16:17:39

iPhone 開發(fā)工具

2011-08-04 16:28:01

iPhone 開發(fā)工具 Accessoriz

2010-06-10 17:45:03

Linux 開發(fā)工具

2010-01-21 10:44:59

Visual C++

2010-02-24 14:53:33

Python開發(fā)工具

2010-01-08 17:01:46

C++開發(fā)工具

2010-03-24 13:52:53

Python GUI開

2017-03-12 11:42:21

Linux致遠(yuǎn)電子內(nèi)核源碼

2012-10-12 09:20:19

AdobeAcrobat XI

2010-05-28 13:38:29

Linux開發(fā)工具

2010-04-26 09:28:43

Oracle數(shù)據(jù)庫(kù)

2022-10-27 15:57:26

開發(fā)工具鴻蒙

2010-03-01 15:57:59

Python開發(fā)工具

2013-11-21 10:21:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)