multithreading - 既然加入保证顺序为什么我们需要在java中同步
问题描述
我对多线程很陌生。我有 2 个线程 t1,t2。每个线程调用计数为整数 1000 次。所以最终输出应该是 2000。如果我使用 t1.join();t2.join(); 它应该返回 2000。因为加入将确保 t2 将在 t1 之后运行。
但是为什么它没有发生,如果加入确保了我们为什么需要同步的顺序?
解决方案
join() 不会启动线程(调用 join() 时它已经启动,因此 join 不能“确保顺序”)。它等待线程结束。但是,在您等待线程结束时,其他线程可以运行。
推荐阅读
- php - 将 CSS 类添加到 drupal_set_message
- php - 第一个字节的缓慢时间 - Windows 上的 XAMPP
- agora.io - 当用户连接到没有广播角色的频道时如何触发 OnUserJoined 事件
- python - 为什么我的 python 脚本没有在共享主机 cpanel GoDaddy 中运行
- testing - 消费者驱动的黄瓜合同测试
- css - 拆分按钮下拉菜单与第一个按钮对齐
- c++ - C++:具有可变参数的 Hacky 参数模式
- php - php curl如何从html中过滤数据
- sql-server - 选择分隔字符串字段的子集
- biztalk - 使用 URI“https://na59.salesforce.com/services/Soap/c/43.0/00Df4000001dsdy”在发送端口“”上发送到适配器“WCF-WebHttp”的消息被暂停