第七章 线程

来源:互联网 发布:非农数据从哪里看 编辑:程序博客网 时间:2024/06/13 04:41

进程:一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。

线程:进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存空间,使得线程间的通信笔记比较容易。多线程指的是同时运行多个线程以执行不同任务。所谓同时,也依据cpu,多个并列执行,单个则根据系统情况决定,如通过时间片切换cpu的任务或抢占。

8.1 线程的创建

1、通过Runable接口的方式创建线程

Thread t = new Thread(runable对象);t.start();

runable对象是实现了这个接口的对象,当线程执行时会调用对象中的run()方法;

public class computer implements Runable{    public void run(){    }}public class test{    public static void main(String [] args){        Thread t = new Thread(new compuer());        t.start();    }}

2、通过继承Thread类来创建线程,覆写run()方法

public class computer extends Thread{    public void run(){    }}public class test{    public static void main(String [] args){        computer c =new computer();        c.start();    }}

8.2 线程的使用

线程的执行是一种抢占的方式,优先级高的获得更多的执行时间,可通过设置优先级来调整

public final void setPriority(int newPriority);值1-10级,默认5级

线程的休眠是指暂时处于一种等待状态。

public static native void sleep(long millis);

线程的唤醒是指从休眠等待状态进入执行状态

public static void interruput();

线程的让步指使当前正在运行的线程对象退出运行状态,让其他线程运行。

public static void yield();

线程的同步,线程的运行权通过抢占的方式获得,一个程序在运行到一半时,被别的线程抢占了,此时这个数据处理了一半,而另一个也是处理这个数据,结果混乱了。解决方法是同步块,另一种是同步方法

1、同步块:
同步块是使用某个对象监视点的线程,获得权限的一种方法。如几个人吃饭,只有一双筷子,这个筷子相当于童年不块的监视点。

synchronized(someobject){  .....  }//someobject是一个监视对象,可以是实际的也可以是假//设的(new Object())。

2、同步方法:同步方法就是对整个方法进行同步

synchronized void test(){    ......}
原创粉丝点击