62,047
社区成员
发帖
与我相关
我的任务
分享
string x = ......;
var a = GetMyObject(x);
lock(a)
{
.................
}
那么这里你可以说,假设不同线程所执行的代码从同一个字符串值为 key 的几何中可以取得相同的对象,那么这里就可以“同步控制语句块”。
代码在不同线程中运行时的同步,其实是基于它们有这种“信号量对象”的协议。并不是什么“锁定住所有传入参数为123456的线程”。
之所以能够同步,是基于内因,而不是基于外因。外部提供的是目的,不是标题党,仅有目地而内部不是灵活地重构代码,其实什么都干不成事儿。