亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1775 | 回復(fù): 6
打印 上一主題 下一主題

關(guān)于多線程 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-02-03 18:53 |只看該作者 |倒序?yàn)g覽
本帖最后由 johnsonshu 于 2010-02-03 19:16 編輯

今天看到一個(gè)代碼,把參數(shù)傳給另一個(gè)線程
  1. funcAdmin (){
  2. struct SS  snd;
  3. int intArray1[10] = {....};
  4. int intArray2[10] = {....};
  5. int i;
  6. while (i < 10) {
  7.   snd.a =intArray1[i] ;
  8.   snd.b =intArray2[i] ;
  9.   _beginThread(hThread, funcThread, &snd,NULL);
  10.   i++;
  11. }
  12. }

  13. funcThread (struct SS  *snd){
  14.    int a, b;
  15.    a= snd->a;
  16.    b=snd->b;

  17.    .... doSomething;
  18. }
復(fù)制代碼
請(qǐng)問(wèn)一下,這種傳參方式是不是不安全。 (線程剛啟動(dòng)的一剎那, 主函數(shù)到了下一個(gè)循環(huán), 結(jié)果snd.a的值被改了的話, 就違背程序本意了)
另外怎么改合適呢?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報(bào)告]
發(fā)表于 2010-02-03 19:01 |只看該作者
#define LOOP 10
struct SS snd[LOOP];
while (i < LOOP)
{
  snd[i].a = intArray;
  snd[i].b = intArray;
  _beginThread(hThread, funcThread, &snd[i], NULL);
  i++;
}

行不?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-02-03 19:12 |只看該作者
本帖最后由 johnsonshu 于 2010-02-03 19:13 編輯

大哥,我可是想一次給thread兩個(gè)參數(shù), 所以才用了結(jié)構(gòu)體的

那邊代碼可能寫的太簡(jiǎn)單了。 我改了一下

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-02-03 19:47 |只看該作者
傳遞給線程的指針參數(shù),指向函數(shù)內(nèi)的臨時(shí)變量,funcAdmin退出之后,變量snd就沒(méi)有了!

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2010-02-03 20:06 |只看該作者
你這個(gè)程序就有問(wèn)題啊。你傳結(jié)構(gòu)地址給線程,你主函數(shù)一退,結(jié)構(gòu)就不存在了。
而且你試圖使用同一個(gè)結(jié)構(gòu)讓多個(gè)線程公用,這樣也麻煩,除非你使用thread_mutex之類的東西,讓每個(gè)線程使用完這個(gè)結(jié)構(gòu)
之后再生成下一個(gè)線程。

最好用靜態(tài)結(jié)構(gòu)數(shù)組
static struct SS snd[10],
然后從snd[0]-snd[9]循環(huán)賦值,最后傳&snd[i]。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-02-03 21:29 |只看該作者
主函數(shù)一退,結(jié)構(gòu)就不存在了 ?
結(jié)構(gòu)有可能被覆蓋吧

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
7 [報(bào)告]
發(fā)表于 2010-02-03 22:06 |只看該作者
結(jié)構(gòu)是在funcAdmin的棧上,funcAdmin退出后,其棧上的東西都被彈出,可以認(rèn)為是不存在了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP