看看这段代码:
int data=5;
void Thread1()
{
if(data==5)
{
//nothing
}
}
void Thread2()
{
if(data==2)
{
//nothing
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我是否需要在if(data == ..)之前使用EnterCriticalSection/MutexLock?
我正在为最大 1000 个客户端编写套接字服务器,服务器是关于我的游戏,我使用非阻塞套接字和大约 10 个线程同时从不同的套接字接收数据(第一个线程从 0-100 接收,第二个从 101-200等等..)
但是如果线程 1 要向所有 1000 个客户端发送数据,而线程 2 也想同时向所有 1000 个客户端发送数据,那安全吗?数据在另一(客户端)端是否有可能被弄乱?
如果是,我想唯一可能发生的问题是有时客户端会收到 2 或 10 个数据包作为 1 个数据包,对吗?如果是的话,有什么解决办法吗:(
我是否需要Alpha通道才能在OpenGL中使用透明度?我可以使用glBlendFunc或其他任何方式使黑色或白色透明/不可见吗?如果有,该怎么办?
没有运行GDB,只有程序本身.
编辑:我已经看过这样的程序,但我无法想象自己该怎么做:(
我有两个线程,它们运行非常快,我的pthread_mutex_lock使用和调用pthread_mutex_unlock进入全球(externed变量)数据
问题是我的应用程序需要大约15-20%的CPU在Ubuntu Linux上运行,
相同的代码,但与EnterCriticalSection的和LeaveCriticalSection和运行在Windows上使用的CPU的1-2%