企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 使用说明 线程临界区的作用是只允许一个线程操作资源,用完再转让资源,避免多个线程抢用. ## 应用场景 多个线程都往同一个控制台输出日志或追加保存内容到同一个文本文件时,容易导致这个线程写几个字符那个线程写几个字符,用了线程临界区进行保护的话,就可以避免这种问题,等一个线程写完了再转让资源控制权让别的线程写. ## 对照现实 使用线程临界区相当于大家轮流上台讲话,不准话筒;没使用线程临界区相当于大家争着抢话筒说话,谁都能说几个谁都没能说完. ## 示例1 新建无界面工程,把下面的中文伪代码复制粘贴到伪代码编辑框里然后运行: ``` 定义 线程句柄1 = 线程.创建( 函数(日志输出框){ 导入 线程; 日志输出框.输出("本线程的ID为:",线程.获取线程ID()) 线程.临界区("写控制台",函数(){ 日志输出框.输出("临界区内只允许一个线程操作资源,用完再转让资源,避免多个线程抢用") }) 计次循环(次数=1;10;1){ 日志输出框.输出("次数=",次数) 延时睡眠(1000) } 日志输出框.输出("完成") },IDE交互.日志输出框 ) 延迟等待(3000) 线程.暂停(线程句柄1) 延迟等待(3000) 线程.恢复(线程句柄1) ``` ## 示例2 ``` //注意:直接关闭控制台时主程序也会跟着关闭 定义 线程句柄1 = 线程.创建( 函数(){ 导入 控制台; 导入 线程; 控制台.输出日志("本线程的ID为:",线程.获取线程ID()) 线程.临界区("写控制台",函数(){ 控制台.输出日志("临界区内只允许一个线程操作资源,用完再转让资源,避免多个线程抢用") }) 计次循环(次数=1;10;1){ 控制台.输出日志("次数=",次数) 线程.休眠(1000) } 控制台.暂停(真);//暂停会导致IDE无响应 控制台.关闭();//用命令关闭控制台不会连IDE也一起关闭 } ) 延迟等待(3000) 线程.暂停(线程句柄1) 延迟等待(3000) 线程.恢复(线程句柄1) ```