今天开始整理资料。欢迎大家关注,首先是Java线程和进程。快速进入话题,查了资料,感觉一下这样描述进,线程比较合适进程:内存环境中基本执行单元,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。从用户角度来看,进程是应用程序的一个执行过程。
线程:CPU执行的最小片段。线程是程序中一个单一的顺序控制流程。
多进程和多线程多线程运行:自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与其他的线程共享进程所拥有的全部资源。
好直接上代码,先看结果
package com.cxj.thread;
public class ThradDemo extends Thread {
private String name;
public ThradDemo(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + "拿走了第" + i+"个馒头");
}
}
public static void main(String[] args) {
ThradDemo thread = new ThradDemo("A");
ThradDemo threadB = new ThradDemo("B");
thread.start();
threadB.start();
}
}
运行结果:
A拿走了第0个馒头A拿走了第1个馒头
A拿走了第2个馒头
A拿走了第3个馒头
A拿走了第4个馒头
A拿走了第5个馒头
A拿走了第6个馒头
A拿走了第7个馒头
A拿走了第8个馒头
A拿走了第9个馒头
B拿走了第0个馒头
B拿走了第1个馒头
B拿走了第2个馒头
B拿走了第3个馒头
B拿走了第4个馒头
B拿走了第5个馒头
B拿走了第6个馒头
B拿走了第7个馒头
B拿走了第8个馒头
B拿走了第9个馒头
难道错了,其实真的没有错,我把“拿走了馒头”,删除了运行一次啊!
运行结果:
AA
B
B
B
B
B
B
B
B
B
B
A
A
A
A
A
A
A
这个B终于抢到部分CPU了,好了,这就是基础概念了!