Java基础:多线程

本文介绍了Java多线程的基础知识,包括线程的功能、创建方式、状态转换和线程同步。通过实例展示了如何创建线程,如继承Thread或实现Runnable接口,并解释了线程的不同状态,如就绪、运行、阻塞和等待。还提到了线程同步的重要性,以及相关的关键方法如synchronized、wait、notify等。
摘要由CSDN通过智能技术生成

1、操作系统能同时运行多个应用程序,每个应用程序就是一个进程
   一个进程可以同时运行多个线程,每个线程负责处理一个任务

2、线程的功能:一个应用程序可以同时去完成多个功能

3、应用程序启动后,会自动创建一个主线程(Android中叫UI线程),其他的线程都称之子线程

4、线程创建线程:
A、创建一个类继承自Thread或者实现Runnable接口,他们都需要重写run()方法,该方法是线程的主体,功能代码必须放在run()方法

B、调用Thread的start()方法启动线程,该方法会自动调用run()方法,run()方法中的代码执行结束后,线程会自动销毁

C、线程对象不能重复启动,比较下面的写法

    Thread t = new Thread();
     t.start();
     t.start();
     上面写法错误,因为线程完成后会销毁,所以不能重复调用start()
     ----------------
     线程启动之前一定要先创建
     new Thread().start();
     new Thread().start();

5、创建线程的方法
A、继承Thread类,该方法用得比较少

public class MyThread extends Thread{
    public void run(){
        Thread.sleep(1000);//休眠
    }
}

MyThread t = new MyThread();
t.start();

B、实现Runnable接口,99%的时候都用此方法   

     public class MyThread implements Runnable{
          public void run(){
               Thread.sleep(1000);
          }
     }
     Thread t = new Thread(new MyThread());
     t.start();

案例1:在应用程序中,两个任务同时运行,一个是显示时钟,另一个显示偶数。

public class EvenTask implements Runnable{
     @Override
     public void run() {
          for(int i = 0; i < 100; i ++){
               if(i % 2 == 0){
                    System.out.println(i);
               }
               try {
                    Thread.sleep(10);
               } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
               }
          }
     }
}

public class TimeTask implements Runnable{
     private Date now = new Date();

     @Override
     public void run
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值