最近還在學習pb,有點鬱悶,還是不太喜歡pb啊
上周五看了一下pb,感覺還簡單。本來已經動手,但因為周五下午有事出去,所以拖到今天。。
pb的多執行緒用到的就幾個函式
sharedobjectregister()
sharedobjectget()
sharedobjectunregister()
用sharedobjectregister(classname,instancename) pb幫助檔案是classname和instancename,即類名和例項名。
用sharedobjectget(instancename , objectinstance) 將例項名和具體的物件例項繫結,然後就可以通過物件例項post 出發類裡預定義的過程或函式。比如在類中預定義了uo_add函式,可以objectinstance.post uo_add
用sharedobjectunregister(instancename) unregisters a user object that was previously registered. 登出掉使用者例項物件
eg.1、定義乙個nvo_multithread
新增add(int ai_n)函式
int li_i2、定義乙個視窗,在instance variables定義變數:nvo_multithread invo_threadint li_result = 0
sleep(5)
for li_i= 0 to ai_n
li_result+=li_i
next
messagebox("",string(li_result))
3、在open事件中的**:
invo_thread = create nvo_multithread4、在close事件中的**:sharedobjectregister ("nvo_multithread" ,"thread1" )
sharedobjectget ("thread1" , invo_thread)
destroy invo_thread5、可以在乙個按鈕的click事件中呼叫:sharedobjectunregister("thread1")
int i呼叫後,就可以非同步執行了invo_thread.post add(i)
注意點:如果想要多個執行緒一起執行,就一定要多註冊幾個例項物件。即多執行幾次2、4步。可以用陣列來做。
比如我在instance variables定義成nvo_multithread invo_thead[5]
open事件:for li_ii= 1 to 5
invo_th[li_ii] = create nvo_multithread
sharedobjectregister( "nvo_multithread" , "tthread" + string(li_ii) )
sharedobjectget ("tthread" + string(li_ii) , invo_th[li_ii] )
next
close事件:for li_ii= 1 to 5
destroy invo_th[li_ii]
sharedobjectunregister("thread" + string(li_ii))
next
(多執行緒)多執行緒的併發安全
多執行緒併發操作同乙個資源 同步鎖 多執行緒操作的鎖必須唯一 必須搞清楚 哪些 需要同步?那些在操作共享資源的 只要包含非讀的操作,或者根據共享資源進行條件判斷的,就需要同步!同步 塊解決 package com.gc.thread 多執行緒操作共享資源 併發 執行緒安全問題 同步 鎖 相對而言效能...
多執行緒 多執行緒的專案實戰
充分利用cpu資源 高併發 系統接受實現多使用者多請求的高併發時,通過多執行緒來實現。大任務 大任務處理起來比較耗時,這時候可以起到多個執行緒並行加快處理 例如 分片上傳 比如處理乙個for迴圈時要花費大量時間,就可以考慮多執行緒了 先說一下此功能用到的知識點 執行緒池執行緒 countdownla...
多執行緒 多執行緒原理
我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...