我是一个java的初学者,我使用java创建了一个应用,在这个应用里面,我启动了一个工作线程,在工作线程中我另外启动了2子工作线程,为甚么在linux下面发现了10个java实例!另外每个实例都占有相同的资源?难道说实在linux下面java的线程处理是采用进程模拟的?如果是这个样子的话我应该怎样来提高自己的应用的性能呢?
解决方案 »
- Hello Everyone, Show my flag~
- 请教:数据库文件移动后,JAVA连不上了
- 对core java中的一些英文术语的不理解
- 关于空接口和类型转换的问题。来帮忙垃
- 关于static的指教,麻烦各位来交流下!
- ##### 提一个问题,看有没有人回答 :) #####
- ■■■■■■■■动态联盟是什么意思?谁懂~给点信息~分不是问题~◆◆◆◆◆◆◆◆◆◆
- 在tomcat中怎样配置jdbc连接池,请高手帮忙。
- visual cafe 怎么用啊!?
- JMenu 快捷键无效
- 估计时线程的问题,不改变窗口的大小,数字不变。
- 关于程序中执行sql语句,数据库oracle,错误代码ora:00923,怎么解决,再线等待
在java中那些内存系统是不会自动回收的?
如果不能自动回收那么我该如何处理?
可能这是没用的。
你在你的对像里写finalize() {System.out.println("finalize");}
再用System.gc()来回收,看看GC有没有真正回收,如果没有回收就是你的所有对象还在用。在java中那些内存系统是不会自动回收的?
----他会自动回收的,而且GC是根据内存的使用情况来进行回收的,如果内存不够用GC才启动,因为回收一次要很大的计算量的。
(上面写错了是10000个不是10000万否则什么机器也够呛)
你可以让一个对象为null,如rs=null,就会通知garbage collector去回收掉。一个程序的多个线程,运行的一个程序的多个实例使用的是同一份共享的内存空间和代码,没错啊,所以限程序间的通信就很容易,而进程却不一样,它们要保留数据的多个副本,所以消耗的内存也多,在进程间建产管道进行IPC通信也比较困难。
确实! linux 一直没有实现真正的多线程!而是使用 fork() 来模拟多线程的操作的!!!