java线程基础

1、线程简析

       现在的操作系统是多任务操作系统,多任务即是多个进程,进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程,多线程是实现多任务的一种方式,线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程也称作轻量级进程。

       多任务同时进行,在单核系统是不是真正意义上的同时,在线程之间实际上轮换执行,多核系统才能实现    

2、定义线程

(1)扩展java.lang.Thread类,重写run()方法。

(2)实现java.lang.Runnable接口,重写run()方法。

3、实例化线程

(1)如果是扩展java.lang.Thread类的线程,则直接new即可。

(2)如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:

         Thread(Runnable target) 
         Thread(Runnable target, String name)
         Thread(ThreadGroup group, Runnable target)
         Thread(ThreadGroup group, Runnable target, String name) 
         Thread(ThreadGroup group, Runnable target, String name, long stackSize)

4、启动线程

在线程的Thread对象上调用start()方法,而不是run()或者别的方法。

在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。

在调用start()方法之后:发生了一系列复杂的事情

启动新的执行线程(具有新的调用栈);

该线程从新状态转移到可运行状态;

当该线程获得机会执行时,其目标run()方法将运行。

注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。

3、代码实现(实现java.lang.Runnable接口

实现Runnable接口

package com.xxx.util;

/**
 * Created with IntelliJ IDEA.
 * Date: 15-3-24
 * Time: 下午4:14
 * To change this template use File | Settings | File Templates.
 */
public class Multiplication implements Runnable{

    private int num;

    public  Multiplication(int num){
        this.num = num;
    }


    @Override
    public void run() {
        for(int i=1;i<10;i++) {
            System.out.printf(Thread.currentThread().getName() + ":%d*%d=%d\n", num, i, num * i);
        }
    }
}

main函数

package com.xxx.util;

/**
 * Created with IntelliJ IDEA.
 * Date: 15-3-24
 * Time: 下午3:57
 * To change this template use File | Settings | File Templates.
 */
public class Main {
    public static void  main(String[] args){
        for(int i=1;i<10;i++){
            Multiplication multiplication = new Multiplication(i);
            Thread thread = new Thread(multiplication);
            thread.start();
        }
    }
}



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值