鉴于以下内容:
pthread_t thread;
pthread_create(&thread, NULL, function, NULL);
Run Code Online (Sandbox Code Playgroud)
究竟pthread_create做了thread什么?
thread它加入主线程并终止后会发生什么?
如果在thread加入后,您会这样做:
pthread_create(&thread, NULL, another_function, NULL);
Run Code Online (Sandbox Code Playgroud)我正在为我的ubuntu服务器实现一个简单的线程池机制(对于我的多客户端匿名聊天程序),我需要让我的工作线程休眠,直到需要执行一个作业(以函数指针和参数的形式) .
我现在的系统正在窗外.我(工作者线程)询问经理是否有工作,如果没有睡眠5ms.如果有,请将作业添加到工作队列并运行该功能.可怜的循环浪费.
什么我喜欢做的是做一个简单的事件性的系统.我正在考虑使用互斥体向量(每个工作一个),并在创建时将传入的互斥锁作为参数传递.然后在我的经理类(保存并分发作业)中,每当创建一个线程时,锁定互斥锁.当需要执行作业时,解锁下一个互斥锁,等待它被锁定和解锁,并重新锁定它.但是我想知道是否有更好的手段来实现这一目标.
tldr; 所以我的问题是这个.什么是使线程等待管理类工作的最有效,最有效和最安全的方法?轮询我应该考虑的技术(一次超过1000个客户端),互斥锁是否正常?还是有其他技术?