由于 C++ 03 标准【没有】包含线程的概念,而(截至写本文时)C++ 0x 尚未正式发布。所以对线程的讨论只好根据特定的操作系统平台来谈。对于操作系统自带的线程 API,目前比较流行的款式是 Windows 平台提供的线程 API 和 POSIX 平台上的 pthread API。但是这两种线程 API 的差异实在是太大,没法拿出来一起聊。我只好把“线程篇”的帖子再拆分一下,今天先来聊一聊 Win32 的线程 API(下一篇再聊 pthread)。
另外,对于进行跨平台开发的同学,应该已经用上了某些跨平台的第三方线程库(比如 ACE、Boost ...),对于这些库的介绍,初步打算放到“C++的可移植性和跨平台开发”系列中。
★两套 API:OS API vs CRT API
本来照例要先介绍线程的几种死法,但是考虑到很多 Windows 程序员经常混淆线程 API,搞不清楚到底该用哪个。所以先来说一下两套线程 API 的问题。
首先,Windows 操作系统本身提供了线程的创建函数 CreateThread 和销毁函数 ExitThread。顾名思义,其中的 CreateThread 用于创建线程,ExitThread 用于在线程函数内部退出线程(也就是自杀)。
其次,在 Visual C++ 自带的 C 运行库(以下简称 CRT)中,还带了另外4个 API 函数,分别是:_beginthread,_endthread,_beginthreadex,_endthreadex。其中的 _beginthread 和 _beginthreadex 用于创建线程(它们内部调用了 CreateThread ),而 _endthread 和 _endthreadex 用于自杀(它们内部调用了 ExitThread)。
某些同学看到这里,被搞懵了,心想:“干嘛要搞这么多玩意儿出来糊弄人?有 CreateThread 和 ExitThread 不就够了嘛!”其实你有所不知,此中大有奥妙啊!
OS API 作为操作系统本身提供的 API 函数,它被设计为语言无关的。它们不光可以被 C++ 调用,还可以被其它诸如 VB、Python、Delphi 等开发语言来调用。所以它们不会(也不能够)帮你处理一些和具体编程语言相关的琐事。
而 CRT API 虽然最终还是要调用 OS API 来完成核心的功能,但是 CRT API 可以在不知不觉中多帮我们干了一些虽琐碎但重要的工作。(如果同学们想窥探一下 CRT API 内部都干了些啥,可以拜读一下 Win32 编程的经典名著《Windows 核心编程》的 6.7章节,里面介绍得挺细致的)
费了这么多口水,无非是要同学们牢记:以后在 Windows 平台下开发多线程程序,【千万不要】直接使用这两个线程 API(也就是 CreateThread 和 ExitThread),否则后果自负 :-)
另外,顺便补充一下。除了上述提到的 CRT 库。其它一些 Windows 平台的 C++ 库也可能提供了线程的启动函数(比如 MFC 的 AfxBeginThread),这些函数也对 OS API 进行了包装,所以它们用起来也是安全滴。
★三种死法
说完了两套 API,开始来讨论一下线程的几种死法。线程和进程一样,也有三种死法。详见如下:
◇自然死亡
一般来说,每个线程都会对应某个函数(以下称为“线程函数”)。线程函数是线程运行的主体。所谓的“自然死亡”,就是通过return语句结束线程函数的执行。
◇自杀
所谓的“自杀”,就是当前线程通过调用某 API 把【自己】给停掉。前面已经说了 OS API 的坏话,同学们应该明白【不能】再用它们。那我们能否使用 CRT API 来进行自杀呢?请看 MSDN 上的相关文档。上面说了,如果使用 _endthread 或 _endthreadex,将导致析构函数【不被调用】。
◇它杀
所谓的“它杀”,很明显,就是其它线程通过调用某 API 把当前线程给【强行】停掉。对于 Windows 平台来说,实现“它杀”比较简单,使用 TernimateThread 就直接干掉了(它杀也是三种里面最野蛮的)。
★类对象的析构
照前一个帖子的风格,还是把类对象分为三种:局部非静态对象、局部静态对象、非局部对象(全局对象)。
由于“非局部对象”是在 main 之前就创建、在进程死亡时析构,暂时与线程扯不上太大关系。剩下的两种局部对象,在宿主线程(所谓宿主线程,就是创建该局部对象的线程)死亡时会受到什么影响捏?请看如下的对照表:
--------------------------
| | 局部非静态对象 | 局部静态对象 |
|自然死亡 | 能 | 能 |
|自杀 | 不能 | 能 |
|它杀 | 不能 | 能 |
--------------------------
从上述结果可以看出,Windows 上线程的死法还是以自然死亡为最安全,这点和进程的死法类似。所以同学们在 Windows 上开发时,要尽量避免自杀和它杀。
★关于主线程之死
所谓“主线程”,就是进程启动时,操作系统为该进程默认创建的【第一个】线程。通俗地说,可以把 main 函数看成是主线程的线程函数。
“主线程之死”是很有讲究的。由于前面已经阐述了非自然死亡的坏处,所以我们只讨论主线程自然死亡这一种情况。当主线程自然死亡时(也就是用 return 从 main 返回时),会导致 exit 函数被调用,然后 exit 函数就会开始清除当前进程的各种资源,为进程的死亡作准备。这时候,如果还有其它活着的线程,也会被一起干掉(其效果类似于它杀)。
为了防止出现上述情况,主线程一定要负责最终的善后工作——换句话说:务必等到其它线程都死了,主线程才能死。
Windows 平台上,有关线程的对象析构问题,就聊到这。下一个帖子,咱们来聊一下 pthread 相关的对象析构话题。
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2009/03/cxx-object-destroy-with-thread-win32.html
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2009/03/cxx-object-destroy-with-thread-win32.html
有人打算整理一下关于编程随想下落的线索吗?(从正反两个方面来举证)
好多怪事都是人为的,第一在搞邪术如祭鬼封神献祭打call,其次是搞种姓的事,
这帮东西用老外的名义来操控挑拨玩弄这个那个,这也是奇葩的,和叫东土人找阿三还是鬼子去表达册封封禅这皇帝是东土的皇帝一样奇葩, ......
ym蜀人都不愿放手的东西如屁眼套路,幼女,献祭,老单和最高神位是有原因的,很值得去研究的 ......
即使博主能活着出狱,若要看到他更新六四系列,那也是在天朝发生了民主化之后,共产党不再有能力镇压批评者之时。
就算哪天中国情报部门不经司法程序,直接把人暗杀了,我也不会觉得奇怪。
https://www.zaobao.com.sg/realtime/china/story20241226-5649612
https://www.youtube.com/watch?v=ozVq_04XMro
如果出现了自杀场景,多半是政府秘密下令处决,并伪装成了自杀。
来自Firsthack的评论
而且,二审的发改率(发回重审+改判)是一个考核政绩的指标,高层认为这个数字越低说明冤假错案越少,然后下面就越容易升官。 ......
原神UID:310221197410210025
互动热线: 13524626271 上海移动
学历: 硕士
生日: 19741021
身高: 165 ......
周欣身份证310105197106042383
户籍地址 :上海市闵行区吴中路429弄15号501室
同户人 :薛军,男,310106196903180414,1969年03月18日; ......
希望各大媒体都报道这几个名字:审判长周欣,审判员:凌莉、须梅华。
家属贝震颖推特号:Birds_b_r_32309
多谢分享“中药注射剂”等国产医疗行业的相关丑闻。
另外,关于疫情期间的乱象,俺整理了一篇:
《每周转载:白纸抗议年的“动态清零”灾难(网文14篇,多图)》
多年前不记得在哪篇博文的评论区和博主讨论叙利亚的命运,当时叙利亚的局势还未尘埃落定。可惜博主现在大牢内,看不到。
这次叙利亚的民主转型发生在俄国陷入战争的泥沼的背景下。 ......
这个是个邪术,第一个是给上面看(不知什么鬼),其次的就真的会指导目标去实际地去做这么些的犯罪邪恶,侵犯幼女的情节是经常频繁重复地出现地,和侵犯女性,还有就是生命 ......
估计到最高法院也没戏,可能会以9:0判决禁抖音。
欢迎提出不同观点。
你提到的是这二者之间的差异,俺也同意这些差异确实存在。
但是,俺要开始说但是了。从本文,咱们也可以讨论这二者之间的共性,至少包含以下方面: ......
玩邪术玩出个什么结果好歹给公开一下,拼命玩邪术还一声不吭,很危险的,要分享分享,劳资帮你们来研究研究
劳资相信这帮东西是能穿越时空的,现在是2019年的ZS,时空被改变穿越了。穿越时空的套路。这帮东西几千年都一个屌样,来几个十级地震都不会任何改变。 ......
现在的两党是争先比谁对华更强硬,已经通过的制裁法案不会松绑,已经加的关税也不会再降,否则就会被在野党骂成“通敌叛国”。
明年1月19日之前,抖音会被禁。
每天上网的好多人都在聊政治呢,难道你要把每一个聊政治的人都抓起来判刑?那也没用。因为年轻人越来越倾向于认为政治制度才是造成他们被困在他那个阶层的重要原因。 ......
这个博客对于政府的批评,大部分都是有理有据。你要是觉得哪里不对,可以反驳博主嘛。判7年是究竟有多心虚? ......
以色列做任何事,都是美国包容范围,和美国民意无关(甚至抗议都无效)。台湾今后也会差不多。
国会一旦提出新的关于台湾的法案,无论是军售,亦或是改善台湾的国际地位等等,都很容易造成近乎【全票通过】。 ......
然而,公报本身只是行政政府的声明,其效力不如法律。 ......
然而,现在的人们,对于不能证明是否为间谍的走线客,也不太宽容。估计人们会支持一律用“有间谍嫌疑”之类的理由,实行一律驱逐的政策。 ......
但是,有些两党已经形成共识的事,其实是不受太大影响的。例如:把台湾武装成以色列。
所以我估计,中共在川普第2任期的前2年之内,就会对台湾动手。
因为这次GOP在众院优势实在太小了,稍微发生一点差错,钟摆效应会让民主党夺回之。
参议院不好说。如果连参议院也丢了,那川普后两年就可能成为跛脚总统,啥事都干不了。
不服者会选择:明着顺从,其实背地里跟共产党对着干。
众议院估计是个险胜。
上次共和党在众议院也是微弱优势,导致议长难产。
这次应该不会难产,因为有川普在,他只要在台上喊几句,就可以让任何一个人当议长,其它共和党议员不会阻挠。 ......
根据NBC新闻:
https://www.nbcnews.com/politics/immigration/trump-may-deport-hundreds-thousands-migrants-biden-allowed-legally-ent-rcna179357 ......
就是先用民调测量其它选举,比如某个地方议员的选举,然后和民调进行对比,看女性候选人是否严重吃亏,是否和民调严重不符。
如果发生该现象,那得出的差额数字,就是该地隐藏的“害羞的性别歧视者”的百分比。 ......
因为“害羞的川粉”等受访者不诚实回答问题的现象,仍然使得民调失真。
贺锦丽连普选票都输了。
你民主党输得这么惨,总不能反思为啥没去迎合那些“黑命贵零元购”之类的种族主义口号吧?反思搞种族平权搞得过头了?
......
美国出了个川贼东。抗战前没做到【攘外必先安内】,这下麻烦大了。
恭喜美国又创造了世界纪录。
估计是川普险胜。
因为大法官的任命是由总统和参议院共同决定,如果总统是川普,那他就会提名非常有争议的保守派大法官。
......
......
川普险胜29%
其它情况基本可以排除。
我的意见是把第13问算成川普+1,他不是国家英雄,但很多人粉川。
然后把第12问算成贺锦丽+1,因为川黑人数太多了,这些人的票会投给贺锦丽。
◇以【川普】为中心展开
◇极化现象
这个没变
......
有一天,我们或许能用类似的思路,找到这些人的把柄,从而有利于清算工作。
只不过在现在,我这种平民可能不够使用AI干这些事的资格。
围观的人多的时候,可以顺便大声质疑警察的做法有无法律依据,给警察造成压力。
即便不说话,而只是去围观,也能造成一点压力。而且围观的风险很低。 ......
我判断他们这些操作主要是为了吓唬人,比如登记这个操作,是为了方便以后搞大清洗时候用的(但概率很小,只有像文革、战争那种特殊时期才会用到)。不过只要敢反抗的人足够多,他们的策略就不会起到太多效果。 ......
对于本案中,已经违反了现有法律的人,比如越权的检察官颜蔚、枉法的董玮、须梅华等人,如果中共已经对其违法行为做出一次处罚,那肯定还不够。到清算的时候,还要【再算一次】,以迫害罪重新起诉之。 ......
防范清算的唯一办法,就是做事的时候要对得起自己的良心;不然的话,光靠威胁那些想要清算你们的人是没用滴。你们抓不完的。
上次一经施压,线索就出来了(当然,威慑的价值是表示反对意见)
至少“RXH屏幕截图”这条线索来得蹊跷
总之,阮晓寰这人是一定要救的。
无论什么办法。哪怕是需要付出1条人命代价的办法都可以提出,因为有人愿意付出这个代价(但前提是这个办法必须靠谱,必须要有效救得了人才行)。
(然而,我认为这个说法是令人难以相信的。)
如果不去尝试改判这条路,就没办法向贝震颖等人证明中国政府的邪恶(远超她的想象)。
另外,我猜测她对反共的人可能还是蛮反感的,比方说,我猜她会认为是反共的人把她丈夫阮晓寰害惨了。 ......
......
找三四到局子里等劳资,怎么不找三四直接来找劳资,又不会发生什么,要找什么来兜这个底 ......
否则,大人物会很高兴,因为他们只需要把责任推给小人物就行了。然后,这个案子就会被某些小人物重判。
反正是零责任嘛,他们不会抵制上级的不合理命令。相反,我们恰好需要小人物【消极抗命】。 ......
陈吉宁是否对一审有责任,这个不好说。毕竟时间太短了。
不过,二审判决的责任很好推定。如果陈吉宁手下的法官维持原判,那我们将来就要抓陈吉宁问罪,无论他将来逃到哪个国家。 ......
一审宣判日2023年2月10日,陈吉宁于2022年10月28日上任。
这期间有大约4个月的时间,陈吉宁作为一把手,有4个月的时间可以影响一审判决。 ......
至于继任的陈吉宁,看二审表现。
办事的小人物也有出庭作证的义务,证明他们背后的老大是幕后黑手,以便减轻自己的罪责。 ......
刚才查到一个,上海政法委书记诸葛宇杰,这个也应该加入该清算的名单。
诸葛宇杰应当是其中一个有能力影响判决的人,如果本案遭到重判,那此人将也应该成为重点追究责任的对象。官职越高,越值得追究。 ......
https://x.com/Suyutong/status/1654760377165438977
@Suyutong ......
新二审法官无需为须梅华法官被撤换之前所羁押的这段时间负责;至于多出来的刑期嘛,超出多少,负责多少。
所以,我建议新二审法官把这个案子改判到3年半以下。 ......
根据法案,总统有权把期限再延长90天。也就是延期到2025年4月
阮晓寰案被多次延期,最近一次是延期至今年12月底审结。 ......
那么,如果能促成一两个有代表性的人物获释(比如编程随想博客博主阮晓寰),那样的话也有改善形象的作用,最终会对抖音将来的法庭判决有好处。 ......
如果按“无罪推定”原则,要求别人先去证明算法推荐有鬼,才肯处罚抖音,就太晚了(比方说,有一天台海战争爆发,年轻人从抖音上看到的到处都是有利于中共、不利于台湾的信息。那美国就会吃亏,援台阻力增加)。 ......
消息源:https://fox59.com/indiana-news/sen-mike-braun-said-interracial-marriage-ruling-should-be-left-to-states/ ......
这些都是在清算之日不能忘记的名字。
引用博主的 原话 :
......
根據我在上海看守所被關押的經歷,陳品霖的待遇很大概率是真的。
我在兩次共計65天的關押期間,沒有任何一次放風的經歷,而可見的放風場(我沒用過)僅是另一個頭頂有小天窗的封閉房間。僅管我是被單獨關押,我也從隔壁監室聽到過關押人數太多、不得不側身睡覺或者睡在地板上的說法 ......
夏巢川 Rei Xia @karasu_ga_warau
⚪️‼️《烏魯木齊中路》被捕導演 #陳品霖 的律師袁茂在9月26日發微博稱,陳品霖在看守所中遭到不人道對待,包括擁擠的睡覺條件,以及一個月才放一次風。在他們前往住所檢察官處反應情況時,檢察官也不見蹤影。 ......
对于阮晓寰案,上海法院要是再不放人,将进一步影响大批年轻人对于中国政治制度的看法。你判他刑,等于向年轻人自证是独裁制度,是专门靠镇压知识分子吃饭的。 ......
这个法律通过后,共产党的成年直系亲属将无法入境,也不能进行某些资产交易。
我建议被制裁对象的家属,赶紧促成释放阮晓寰博主等良心犯。这是你们自救的一个办法。在乌克兰战争期间,俄国寡头就是用类似的办法换取自己免于制裁的。 ......
推文出处 @Birds_b_r_32309
#编程随想 #阮晓寰
这一个多月,张冬硕律师来上海阅卷、会见了阮晓寰多次。基于一审的种种问题,阮晓寰本人、张律师和莫律师都分别于9月初上书高院,要求二审 依法 公开 开庭审理! ......
贝女士现在不锁推了,希望大家都去关注声援
总之,【环境差】就容易引发【癌症】。
这就是为啥我们希望阮晓寰二审获得【轻判】、减刑;降低得癌症的概率。
虽然民主党对非法移民确实更加友善,不过从长远看,我建议走线客对民主党也要留个心眼,同时重视共和党里面支持非法移民的少数派。
......
你可以谷歌搜索“阮晓寰”,这就是博主的真名。不过,本案恰巧还没有审理结束,他妻子@Birds_b_r_32309 在推特X上发声,要求大家多声援它,向当局施压,以便争取二审减刑。 ......
因为最近海地人有恐慌情绪,所以新闻转述了这个海地人所说的6年前车窗玻璃被砸那件事。
1938年,合法定居在德国的犹太人社区的玻璃也被砸碎,史称“水晶之夜”。
想必不久之后,华川粉会要求戴徽章,以便证明自己是合法移民,或者所谓的“良民”;至于那些不肯用这个徽章证明自己是良民的黄皮肤的人,自然就是非法移民了。 ......
关于斯普林菲尔德(Springfield)海地人吃猫的这个谣言,简单聊聊吧。
事情是这样的,起因是一个叫Erika Lee的大妈在脸书上贴了一篇文章,说我邻居丢了自己的宠物猫,怀疑是海地难民偷的。这个帖子被加上了“海地非法移民偷猫偷狗吃,大家赶紧看好宠物”的标题一传,一下子就爆了。 ......
以为非法移民不能投票就好惹是吧?
等到民主党大赦非法移民,2000万非法移民入籍美国获得投票权,你MAGA党就别想再选了。 ......
川普和MAGA大肆散布俄亥俄州Springfield海地人偷当地人宠物吃的谣言,煽动选民对移民的恐惧,反倒是让人关注到这个小城其实是移民帮助建设美国的典范。当地制造业外移造成了经济退化,在海地大地震后大量美国接纳的合法海地移民在此工作,小城重燃经济希望。 ......
美国的非法移民(比如走线客)可以抓住这个机会,帮海地合法移民发声、谴责川普。
记住:帮别人就是帮自己。
因为贺锦丽一旦对同情巴勒斯坦的这一方做出任何承诺,就会失掉另一方的选票(以色列这一方的金主就会放弃民主党,转而去帮川普),最终结果就是川普上台。 ......
当然了,拜登几乎没人粉他,大家当初都是因为讨厌川普才投给他的。
在拜登退选后,大家又去支持贺锦丽,才使她的民调变高。