1.进程和线程,程序的概念
1.1程序:是一组指令的有序集合,没有任何运行时的意义,即是静态的。可以存储。
1.2进程:他是动态的,是程序在某个数据集上的运行,是一个动态的实体,有自己的生命周期。进程是操作系统中资源分配的基本单位,有着自己的独立的内存和资源,cpu在切换进程时,有独立的地址空间,当某个进程破坏时,不影响其他的进程。耗费的时间较多,因此引入了线程。
1.3线程:即是进程某次执行的路径,一个进程包括多个线程。是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
2.java中线程的两种创建方法
2.1 通过继承Thread来创建继承
public class ThreadDemo extends Thread {
int flag=0;
public static void main(String[] args) {
new ThreadDemo().start();
//主线程
int i=0;
while(true){
System.out.println(Thread.currentThread().getName()+"....."+i++);
}
}
public void run(){
while(true){
System.out.println(Thread.currentThread().getName()+"....."+flag++);
}
}
}
2.2 使用实现Runnable接口的方式来创建线程
public class MyThread implements Runnable {
public void run() {
for(int i=0;i<100;i++)
System.out.println("MyThread*********"+i);
}
}
3. 这两中创建线程的方式有什么区别
3.1 使用实现Runnable接口的方式来创建线程,同时还可以继承其他的类,突破了单继承的局限。同时,多个线程共享一个target对象,非常适合哪种对个线程同时处理同一份资源的情况。如果要访问当前的线程只能通过Thread.currentThread()方法来访问.
3.2 使用继承的方式来创建线程,不能够在来继承其他的类,但是其编写和访问较为方便。