管道客戶端
#define _crt_secure_no_warnings#include#include
#include
#include
#define size 4096
char pipename[128] = "
\\\\.\\pipe\\cloudpipe";
handle m_pipe =null;
inta;
intb;
void
run()
void
main()
intnwrite;
intnread;
run();
char winfo[1024] = ;
sprintf(winfo,
"%d %d
", a, b);//
列印資料
writefile(m_pipe, winfo, strlen(winfo), &nwrite, null);//
寫入 memset(winfo, 0, sizeof(winfo));//
清零 readfile(m_pipe, winfo, 1024, &nread, null);//
讀取int
res;
sscanf(winfo, "%d
", &res);
printf(
"\n%d+%d=%d
", a, b, res);
system(
"pause");
}
2.服務端
#define _crt_secure_no_warnings#include#include
#include
#include
#define size 4096
#define max_connect 128
int startthreadnum = 10;//
一開始有10個執行緒存在
char pipename[128] = "
\\\\.\\pipe\\cloudpipe";
typedef
struct
info
pipe_st;
pipe_st pipeinst[max_connect];
//128個結構體
dword winapi severthread(
void *lp)
; pipe_st curpipe = *(pipe_st*)lp;//
獲取當前結構體
初始化乙個結構體
while (1
)
if (!readfile(curpipe.hpipe,szbuf,size,&nread,null))
inta, b;
sscanf(szbuf,
"%d %d
", &a, &b);
memset(szbuf,
0, sizeof(szbuf));//
清零 sprintf(szbuf, "
%d", a +b);
writefile(curpipe.hpipe, szbuf, strlen(szbuf), &nwrite, null);//
寫入disconnectnamedpipe(curpipe.hpipe);
//斷開
}
return0;
}void
start()
//建立事件
pipeinst[i].hevent = createeventa(null, false, false, false);//
建立事件
//建立執行緒
pipeinst[i].hthread=createthread(null,0,severthread,&pipeinst[i],0
,null);
}printf(
"sever start");
}void
end()
void
main()
3.壓力測試
#include #include#include
void
main()
}}
python 併發程式設計 管道
1.管道 from multiprocessing import pipe conn1,conn2 pipe 返回兩個值 conn1.send wdc 傳送print conn2.recv 接收conn2.send yhf print conn1.recv 結果 雙向通訊 2.在程序中傳遞資料 fr...
Python併發程式設計 管道
from multiprocessing import pipe,process def func conn1,conn2 conn2.close 子程序只需使用connection1,故關閉connection2 while true try msg conn1.recv print msg ex...
shell多執行緒 2 之基於管道實現併發
在shell指令碼裡批量執行程式是比較常見的方式,如果程式很多,每個執行時間比較長,則順序執行需要花費大量的時間。此時併發就成為我們考慮的方向。上篇 shell多執行緒 中我們已經簡單實現了基於for迴圈的併發,可以顯著提高工作效率 缺點是cpu的核心不是無限的,如果全部占用,則會影響系統的正常執行...