今天去面试,先被问到了进程和线程的区别,我解释说,进程里的变量属于这个进程,不能和别的进程共享。 之后面试官就问我,那两个进程之间怎么交互? 两个进程操作同一个资源,那么怎么提供同步和互斥?我知道同一个进程里的变量可以被这个进程里的线程共享,那可以提供一个公共变量,一个线程在操作完资源之后修改这个变量的值,另一个线程不断的读取这个公共变量,如果发现这个变量被修改,那么就可以去操作资源,所以我想,是不是线程也是这样的,所以我就这样回答他,结果他问我,既然进程中的变量不能共享,那这个公共变量申明在什么地方?怎么同步呢? 我当时一头雾水,请高人指教!
解决方案 »
- tomcat的totalMemory方法返回的内存只升不降吗?
- 求助
- java编写NT服务问题!
- Servlet
- tomcat 配置问题
- jbuilder下web项目中ant是否可以调用外部命令或者批处理
- 一个实现查询的问题,想请各位看看,是什么问题!请帮助解决一下,明早给分!
- 给点建议吧:打算用java3D生成三维JPG图片,怎么做?
- 初学Hibernate,照着一篇教程做..没运行成功...请指教1!!
- 请问开发J2EE是用weblogic好还是用wsad好?
- getHibernateTemplate()和new HibernateTemplate()区别
- java动态生成.csv文件,不好的清指出
JAVA的进程线程机制跟C++不一样的,而且C++那种还是跟平台相关所以,对于这样的问题,你不要害怕他,你问他,
你两个进程为啥要交互?
如果要同步又互斥的访问一个资源,为什么要设计成两个进程,而且还规定不能用两个线程?如果有充分的理由,那我告诉你
java没有原生的方法,只能寻找变通的方法
内存映射,相互发socket包等等我的理解就是,java中
1,每个进程有自己独立的地址空间,不同进程的地址空间不能相互访问,(这个是java安全性决定的)
2,同一个进程中的线程公用一个地址空间,在允许的情况下(生命周期,可见度),不同线程间的地址可以相互访问;另外,面试官有时候就是装傻,问些奇怪的问题,看你到底对这个东西了解多少。所以,你只要肯定的,你就说,别让他给你带到沟里去