社区
Java
帖子详情
synchronized在Windows是如何实现的?
lydmc
2007-06-07 03:42:16
初看synchronized觉得像Windows的临界区。
但当它内部有Wait语句时:
进入synchronized的范围时,则获取了this在这个线程的锁定。
而再进入了Wait状态时,会释放this在这个线程的锁定。
这个就不同于Windows的临界区了,临界区是不会被自动退出的。
请各位指教。
...全文
225
3
打赏
收藏
synchronized在Windows是如何实现的?
初看synchronized觉得像Windows的临界区。 但当它内部有Wait语句时: 进入synchronized的范围时,则获取了this在这个线程的锁定。 而再进入了Wait状态时,会释放this在这个线程的锁定。 这个就不同于Windows的临界区了,临界区是不会被自动退出的。 请各位指教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oracle1000g
2007-12-11
打赏
举报
回复
这个涉及到多线程的问题,你说的这个问题一般很难达到解决,为什么,
因为java是一个虚拟机,他是在OS之上的一层虚拟软件,所以他在语言层次上实现了进入等待的自动释放线程锁定
而c++是一个native可执行文件,他调用的完全是靠windows提供的多线程的win32 API来做的,要实现你说的功能必须改造windows提供的win32 API的实现机制
不知道你满意我的答复否
我的博客地址:http://blog.csdn.net/oracle1000g
现阶段主要做SOA的研究,做java开源技术的开发和推广,希望交流,交流让人进步
likgui
2007-06-13
打赏
举报
回复
关注
lydmc
2007-06-07
打赏
举报
回复
可能我没有说清楚:
[java]
class A{
public synchronized foo(){
...
wait(); // 这里如果进入等待,则释放this在这个线程的锁定
...
}
}
[c++]
...
EnterCriticalSection(&m_lock);
...
WaitforSingleObject(...); // 这里如果进入等待,并不会释放m_lock在这个线程的锁定
...
LeaveCriticalSection(&m_lock);
...
c++怎样实现类似java中“进入等待,同时退出临界区”的效果
Java 内核原理入门到实战(大神必经之路)
Java 语言是体系结构中立的: Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在
实现
这个 Java 平台的任何系统中运行。这种途径适合于异构的...
java
synchronized
c_java的
synchronized
关键字是语法糖吗?
在很多年以前(大概十几年吧),C++没有自己的多线程库(现在boost中有thread库,而且已经被接受为C++标准),于是编写多线程相关代码变得非常繁琐,在
windows
上要使用beginthreadex_这样的函数,而在linux上则是pthread...
synchronized
与ReentrantLock的区别
核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 ——
synchronized
和 volatile 。在简化与平台无关的并发类的开发的同时,它决没有使并发类的编写...
synchronized
原理、流程、异常处理
讲述
synchronized
原理,和工作流程,为什么是重量级锁就慢,为什么是不公平锁,在那些情况下不要使用锁,遇到异常是否会导致锁意外释放
Java
50,530
社区成员
85,610
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章