java进程和线程学习

来源:互联网 发布:系统还原会丢失数据 编辑:程序博客网 时间:2024/06/05 03:17

1.进程与线程

1、操作系统在执行一个程序时,会自动建立一个‘进程’,这个进程中,至少包含一个线程(这个线程被称为主线程),来作为程序入口。


2、操作系统运行中,会产生很多个‘进程’,这些进程不共享内存;而每个进程占有的内存,却可以被这个进程中不同的‘线程’所共享;另外,这些线程不仅共享这段内存,每个线程还可有一个属于它自己的内存空间——线程栈,这是线程建立时,操作系统分配的,用来保存线程数据。


3、线程总是属于某个进程,进程中的多个线程共享进程的内存。


4、进程被分为多个线程后,这些线程可以并发执行。


2.线程程序

1、由于Java是纯面向对象语言,因此,Java的线程模型也是面向对象的,Java通过Thread类将线程所必须的功能都封装了起来。


2、如果想运行自己的线程执行函数,那就要覆盖Thread类的run方法,即,继承Thread类,重写类里面的run()方法,run()里面写你要执行的代码。如下:

public class MyThread extends Thread{public void run(){         //你的代码}}

3、执行的时候,实例化MyThread,然后调用start()方法;start方法负责建立线程,调用start方法后,如果线程建立成功,会自动调用Thread类的run方法,即开始执行你的代码。如下:

public static void main(String[] arg0){MyThread myThread = new MyThread();        myThread.start();}

4、除了Thread类,还有一个标识某个Java类是否可作为线程类的接口Runnable,这个接口只有一个抽象方法run,也就是Java线程模型的线程执行函数。一个线程类的唯一标准就是这个类是否实现了Runnable接口的run方法,也就是说,拥有线程执行函数的类就是线程类。如下:

public class MyRunnable implements Runnable{    public void run()    {        //你的代码    }}

5.在使用Runnable定义的子类中没有start()方法,只有Thread类中才有。此时观察Thread类,有一个构造方法:public Thread(Runnable targer)此构造方法接受Runnable的子类实例,也就是说可以通过Thread类来启动Runnable实现的多线程。如下:

public static void main(String[] args){    MyRunnable t1 = new MyRunnable();    new Thread(t1).start();   }




0 0
原创粉丝点击