Java多线程进程需要我们不断的学习在学习的过程中我们要看看如何才能更好的改变目前的运行障碍通俗一点说进程就是程序的一次执行而线程可以理解为进程中的执行的一段程序片段
用一点文词说就是每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程一般来讲(不使用特殊技术)同一进程所产生的线程共享同一块内存空间
同一进程中的两段代码是不可能同时执行的除非引入线程线程是属于进程的当进程退出时该进程所产生的线程都会被强制退出并清除线程占用的资源要少于Java多线程进程所占用的资源进程和线程都可以有优先级在线程系统中进程也是一个线程可以将进程理解为一个程序的第一个线程多进程在操作系统中能同时运行多个任务(程序)
Java多线程进程在同一应用程序中有多个顺序流同时执行
通过铁路售票程序来理解实现Java多线程的两种方法通过javalangThread类和通过Runnable接口
java中有两种实现Java多线程进程的方式一是直接继承Thread类二是实现Runnable接口那么这两种实现Java多线程的方式在应用上有什么区别呢?
为了回答这个问题我们可以通过编写一段代码来进行分析我们用代码来模拟铁路售票系统实现通过四个售票点发售某日某次列车的张车票一个售票点用一个线程表示
我们首先这样编写这个程序
public class ThreadDome{
public static void main(String[] args){
ThreadTest t = new ThreadTest();
tstart();
tstart();
tstart();
tstart();
}
}
class ThreadTest extends Thread{
private int ticket = ;
public void run(){
while(true){
if(ticket > ){
Systemoutprintln(ThreadcurrentThread()getName() +
is saling ticket + ticket);
}else{
break;
}
}
}
}
上面的Java多线程进程代码中我们用ThreadTest类模拟售票处的售票过程run方法中的每一次循环都将总票数减模拟卖出一张车票同时该车票号打印出来直接剩余的票数到零为止在ThreadDemo类的main方法中我们创建了一个线程对象并重复启动四次希望通过这种方式产生四个线程从运行的结果来看我们发现其实只有一个线程在运行这个结果告诉我们一个线程对象只能启动一个线程无论你调用多少遍start()方法结果只有一个线程