发布网友 发布时间:2024-10-07 11:29
共5个回答
热心网友 时间:2024-10-22 10:20
你是不是在两个不同的控制台运行着两个程序啊。按我的理解是这样就是两个程序,相互之间的变量应该是互斥的,不然就会产生死锁等,所以就是B的MAIN调用的A的COUNT为其所分配一块内存,C的Main一样,然后相当于各自有一个变量追问想想应该是这样的,那有什么好的办法来处理进程间的通信呢,让它们共用一块内存的数据,帮忙解答追答好吧。刚才我又测试了一下。再建一个类,然后让他有main方法,再里面实例B和C,这样在刚开始时count是100,而且是B的,然后在线程c中将count设为了200,这样B和C都是200了。PS.按照你的要求,我个人觉得用JAVA实现不太现实,因为你的目的要涉及到底层的东西,在windows上java很难实现吧。如果是用java写一个完整的系统,可以用*等,具体的看官方文档,但应该只有一个main方法,即只有一个进程,不然内存数据无法共享
热心网友 时间:2024-10-22 10:20
因为你抽象的太厉害了,本来的逻辑都不知道怎么回事了,按这么来说最终两个输出的结果会相同,要么100要么200追问大致逻辑是这样的
热心网友 时间:2024-10-22 10:21
....你在B里设A.count = 100...在C里设C.count = 200;......当然B输出100...C输出200啊......大哥....如果不是这结果...才是不可思议...热心网友 时间:2024-10-22 10:22
当然啦,你那边弄了个死循环,而且B中调用了count,并且设置为100,而C中调用了count并设置成了200,你程序里面sleep(500)并且都用了thread线程,所以在B休眠500毫秒的时候C就调用了线程,然后C休眠500毫米,B就调用线程,就这样死循环下去。热心网友 时间:2024-10-22 10:22
赋值了 自然就变了