Java Thread(线程)

程序

程序是一段静态的代码,它是应用程序执行的蓝本。

进程

进程是程序的一次动态执行过程,它对应了从代码加载,执行到执行完毕的一个完整的过程,这个过程也是进程本身从生产,发展到消亡的过程。

操作系统

现在的操作系统可以同时管理一个计算机系统中的多个线程,也就是说可以让计算机系统中的多个进程轮流使用CPU资源。

线程与进程

Thread是Java.lang包下的一个类
在java中,线程也是一种对象,是java应用程序中的单任务流。但并非所有对象都可以称为线程,只有实现Runable接口的类的对象才能称为线程。所以创建线程必须实现Runable接口。
线程是比进程更小的执行单位,一个进程在执行的过程中可以产生多个线程。形成多条执行线索,也就是每条线程也有他自身的产生,发展到消亡的过程。线程间可以共享进程中的某些内存单元(包括代码和数据),线程的中断与恢复可以更加节省系统的开销。

并发

同时完成多个任务。

多线程

就是多个线程对象

线程的生命周期:

new,runnable,not runnable,dead
start() 启动线程
run() 线程执行
sleep() 优先级高的线程可以在它的run()方法中调用sleep()方法来使自己放弃cpu资源,休眠一段时间。
isAlive() 线程处于新建状态时,线程调用isAlive()方法返回false。在线程run()方法结束之前,也就是没有进入死亡状态之前,线程调用isAlive()方法返回true。
currentThread():可以查看当前使用CPU的线程
interrupt():一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法唤醒自己。即导致休眠的线程发生InterruptedException异常。从而结束休眠,重新排队等待CPU资源。

public class TestThread implements Runnable {
    Thread test1, test2;//声明一个线程test1,test2
    public  TestThread(){//TestThread的构造方法
        test1 = new Thread(this);//在TestThread类的构造方法中新建一个线程test1。
        test2 = new Thread(this);
        //this的意思是新建一个线程test1之后,并把这个test1托管给TestThread这个类来运行
        test1.start();//调用start方法启动这个线程
        test2.start();
    }
    public static void main(String[] args) {//java的主线程
      new TestThread();
    }
    @Override
    public void run() {//实现runnable接口后实现的方法  这个方法体叫做线程体
//      while(true){
//      System.out.println("我是这个线程");
//      try {
//          test1.sleep(1000);
//      } catch (InterruptedException e) {
//          // TODO Auto-generated catch block
//          e.printStackTrace();
//      }
//      }
         Thread th =    Thread.currentThread();
         if (th == test1) {
             System.out.println("我是线程1");
            }
         if(th == test2){
             System.out.println("我是线程2");
         }
    }
}

线程同步:
在处理多线程的问题时,我们必须注意这样一个问题:当两个或者多个线程同时访问一个变量,并且一个线程需要修改这个变量。我们应该对这样的问题做出处理。
线程同步就是若干个线程都需要使用一个synchronized修饰的方法,及线程中的若干个线程都需要使用一个方法,而这个方法用synchronized给予了修饰。
多个线程调用synchronized方法必须遵守同步机制:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值