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

Perl線程學(xué)習(xí)指南

開發(fā) 架構(gòu)
Perl線程與進程之間既有聯(lián)系,又完全不同。簡單地說,一個Perl線程必然屬于某一個進程,而一個進程包含至少一個或者多個Perl線程。

本文和大家重點討論一下Perl線程的概念,Perl線程是一個單一的執(zhí)行流程,它是所有程序執(zhí)行過程中最小的控制單位,即能被CPU所調(diào)度的最小任務(wù)單元。下面請看本文有關(guān)Perl線程概念詳細介紹。

Perl線程學(xué)習(xí)指南

1:創(chuàng)建Perl線程

usethreads;my$thr=threads->new(\&sub1);subsub1{print"Inthethreads";}

也可以通過creat創(chuàng)建Perl線程并為Perl線程傳遞參數(shù)
new=create

my$thr=threads->create(\sub1,@paramlist);

2:等待Perl線程結(jié)束

usethreads;my($thr)=threads->new(\sub1);my@return=$thr->join();subsub1{return('FiFty',1,2);}

注意在這個例子中,sub1返回的是一個list,所以我們需要在定義Perl線程時候使用my($thr),這是給$thr一個list的上下文

3:忽略一個Perl線程

join做三件事:等待Perl線程推出,清理Perl線程以及返回Perl線程返回值。
如果你對Perl線程沒啥興趣,可以使用detach不管它,Perl會自動收拾這個進程

usethreadsmy$thr=threads->create(\&sub1);$thr->detach();sleep(15);subsub1{my$a=0;while(1){$a++;print"\$ais$a\n";sleep1;}}

sleep在這里的作用是使主進程多運行一些時間,否則主程序推出則Perl線程也會退出

我們也可以在sub里面退出Perl線程

subsub1{threads->detach();}

4:數(shù)據(jù)共享

usethreads;usethreads::shared;my$foo:shared=1;my$bar=1;my$thr=threads->create(sub{$foo++;$bar++}->join();print$foo,"\n";#2print$bar,"\n";#1

使用hash作為共享數(shù)據(jù)要注意的是

my$foo:shared;my$bar;my%foo;$foo->{bar}=\$bar#錯誤,必須使用共享數(shù)據(jù)的引用

5:使用數(shù)據(jù)共享帶來的問題

考慮這樣一個程序

usethreads;usethreads::shared;my$a:shared=1;my$thr1=threads->create(\&sub1);my$thr2=threads->create(\&sub2);$thr1->join;$thr2->join;print("$a\n");subsub1{my$foo=$a;$a=$foo+1;}subsub2{my$bar=$a;$a=$bar+1;}

這時候a的值是多少呢?sub1和sub2都對變亮a進行了修改,所以a的值是不確定的,可能是2也可能是3(我試了n次都是3)

6:同步和控制

訪問控制:lock()

【編輯推薦】

  1. Perl線程隊列和信號量概念解析
  2. 揭秘Perl線程歷史
  3. 解析四大Perl操作符用法
  4. 追蹤調(diào)查 看Perl線程如何消亡
  5. 學(xué)習(xí)筆記 深入剖析Perl線程的生命周期

 

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-16 10:44:54

Perl數(shù)組

2010-07-21 11:04:44

Perl學(xué)習(xí)指南

2010-07-20 16:13:25

Perl線程

2009-11-11 14:32:33

路由協(xié)議介紹

2010-07-16 15:29:02

Windows Pho

2010-07-29 09:31:28

Flex編程模型

2011-08-23 10:29:13

LuaPlayer

2009-09-17 09:01:10

CCNA學(xué)習(xí)指南CCNA

2010-07-26 13:27:19

Perl多線程

2010-06-11 14:21:53

2014-12-11 17:55:05

程序員

2024-10-15 08:10:49

NotebookLMYouTube視頻AI

2020-07-08 14:50:18

WebpackHMR前端

2009-11-24 14:48:00

2009-11-12 17:20:17

2009-03-22 12:01:33

CCNA視頻教程下載

2015-12-07 11:22:00

算法學(xué)習(xí)指南

2010-07-20 13:32:25

Perl編程格式

2015-09-24 14:04:59

機器學(xué)習(xí)

2011-08-17 14:07:43

IOS開發(fā)Quartz 2D
點贊
收藏

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