- 主题:PostMessage() 线程安全吗?
PostThreadMessage是一个Windows API函数。其功能是将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回。
fwrite是线程安全的吗?两个线程同时fwrite(10MB),会互相重叠吗?我认为是线程安全的,要不然VC6的6个运行库:-) 分啥单/多线程
CreateEvent, CreateSemaphone, WaitForSingleObject, RaiseEvent, MsgWaitForMultipleObjects HANDLE hTemp = GetCurrentThread(); DWORD nID = GetCurrentThreadId(); ...
有个叫大菊的,他的座右铭是“不能流芳百世,便要遗臭万年” :-)
--
修改:billybear04 FROM 106.121.168.*
FROM 106.121.168.*
【 在 z16166 (Netguy) 的大作中提到: 】
: fwrite有源代码的,操作file stream之前会加锁,是线程安全的
我有个疑问。fwrite属于C运行库,最终写文件是WriteFile?在C运行库里加锁很可行。
PostMessage属于WIN32 API,是kernel32, user32或某个DLL里的。
在自己的C程序里调用PostMessage,是直接进到DLL里去了,还是C运行库可以插一杠子加锁?
kernel, user……算Windows的内核了,PostMessage算Windows内核函数,在内核里加锁吗?
linux下调用系统调用,C程序和C运行库打交道,C运行库里的“存根”代码会通过trap/interrupt进入内核,实现用户/内核态的切换,Windows下应该有类似的过程,是如何实现的?kernel32.dll是不是还在用户态,也会中断,真正实现功能的代码在别的地方?
--
FROM 106.121.168.*
你再给编编COM和PostMessage的关系呗
--
FROM 106.121.168.*
: 喜欢poll就直接用registered IO, 这个也是10年前的技术了,intel的dpdk抄的这个。直接poll性能更好
这个好啊。"dpdk is the data plane development kit that consists of libraries to accelerate packet processing workloads running on a wide variety of cpu ..."
以视频会议的MCU(Multiple Control Unit,很老的概念)为例,100个人开会,音视频包都从MCU走下,有时候需要对那些包做点加工,比如混音,有时“我就看看”,从网线到网卡到核心buffer到用户buffer,看了,不改,再反过来发出去,感觉好周折好低效,多亏硬件快。好像有技术叫ZeroCopy。sendfile()也很老了吧,文件内容不会从用户空间绕吧
智能音箱 智能xxx …… 有“智能网卡”:-)这个概念吗?通过“控制信道/平面”设置成“你转发给前述地址就行别中断我”。远程管理的服务器为啥不能叫“智能服务器”——这个需求不简单,具体实现我不管,花了钱能得到吞吐量就行
--
FROM 106.121.177.*