JVM启动CPU会为其分配内存,JVM占用一个进程。
线程的目的:最大可能的利用CPU资源。
线程与线程对象的区别:线程对象是产生线程的对象,线程对象是JVM产生的一个普通的Object对象;
线程是CPU分配给这个对象的一个执行过程。
知道了线程对象与线程的区别,那么我们再来思考一个小问题:
我们都知道java中创建线程对象有两种方式:(1)继承Thread类和(2)实现Runnable接口
我们还知道(2)比(1)好。简单的原因友有两个:1.用(2)能够弥补Java中单继承缺陷,2.用(2)能够实现资源共享。
那么问题是:为什么我们能够这么大胆儿滴say:能够实现资源共享呢,个人简单浅显的认为是:线程并不是线程对象, 而是CPU分配给这个线程对象的一个执行过程。
下面看一个小例子:
public class TestThreadRunable {
public static void main(String args[]) {
//不能够实现i的资源共享,打印10个1。
for(int j=0 ;j<10; j++) { //因为此处相当于产生了10个线程对象,而每个线程对象又去执行了一次线程
new TestThread().start();
}
//能够实现i的资源共享,打印12345678910
TestRunnable test = new TestRunnable();
for(int j=0; j<10; j++) { //因为这里只对一个线程对象进行十次执行线程
new Thread(test).start();
}
}
}
class TestThread extends Thread {
int i = 0;
@Override
public void run() {
System.out.println(++i);
}
}
class TestRunnable implements Runnable {
int i = 0;
@Override
public void run() {
System.out.println(++i+"--Runnable--");
}
}
自我学习-多线程基础篇1
原创
©著作权归作者所有:来自51CTO博客作者panguixiang的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:java 处理时间问题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
多线程---基础篇
多线程指在一个程序内同时运行多个线程。线程可以理解为轻量级的进
java 多线程 System d3 -
Java基础篇 | 多线程详解
大家好,我是Leo哥???,在Java的开发中,处处都会用到多线程,现在开发大多都会使用到Spring的框架,里面就封装了很
java 开发语言 多线程 就绪状态 Java -
多线程篇1:java创建多线程以及线程状态
当我们打开电脑,可以一边打开qq音乐听歌,一边打开浏览器浏览网页,还算可以上qq聊天
jvm java 算法 多线程 等待状态 -
Java多线程基础篇1_往期基础补充总结
目录往期Java阶段多线程相关,参考往期博客:Java学习篇21_异常、
多线程 java 线程池 创建线程三种方式 数据