zoukankan      html  css  js  c++  java
  • Java并发学习之中的一个——线程的创建

    本文是学习网络上的文章时的总结,感谢大家无私的分享。

    1、与每一个Java语言中的元素一样,线程是对象。在Java中,我们有两种方式创建线程:

    a、通过直接继承thread类,然后覆盖run方法。

    b、构建一个实现Runnable接口的类,然后创建一个thread类对象并传递Runnable对象作为构造參数

    代码例如以下

    package chapter;
    
    /**
     * <p>
     * Description: 它能创建和执行10个线程。每个线程能计算和输出1-10以内的乘法表。
     * </p>
     * @author zhangjunshuai
     * @version 1.0
     * Create Date: 2014-8-7 上午11:06:06
     * Project Name: Java7Thread
     *
     * <pre>
     * Modification History: 
     *             Date                                Author                   Version          Description 
     * -----------------------------------------------------------------------------------------------------------  
     * LastChange: $Date::             $      $Author: $          $Rev: $         
     * </pre>
     *
     */
    public class Calculator implements Runnable{
    
    	private int number;
    	public Calculator(int number){
    		this.number = number;
    	}
    
    	/**
    	 * run()方法是创建的线程执行指令
    	 */
    	@Override
    	public void run() {
    		for (int i = 1; i < 10; i++) {
    			System.out.printf("%s:%d*%d=%d
    ",Thread.currentThread().getName(),number,i,i*number);
    		}
    	}
    
    	public static void main(String[] args) {
    		for (int i = 1; i < 10; i++) {
    			Calculator cal = new Calculator(i);
    			Thread thread = new Thread(cal);
    			thread.start();
    			
    		}
    	}
    }
    

    2、每一个Java程序最少有一个运行线程。当你运行程序的时候,JVM运行负责调用main()方法的运行线程。当调用Thread对象的start()方法时,我们创建了还有一个运行线程。在这些start()方法调用之后,我们的程序就有了多个运行线程。当所有的线程运行结束时(更详细点,所有非守护线程结束时),Java程序就结束了。假设初始线程(运行main()方法的主线程)运行结束,其它的线程还是会继续运行直到运行完毕。可是假设某个线程调用System.exit()指示终结程序,那么所有的线程都会结束运行。创建一个Thread类的对象不会创建新的运行线程。相同,调用实现Runnable接口的run()方法也不会创建一个新的运行线程。仅仅有调用start()方法才干创建一个新的运行线程。


    參考:

    并发网


  • 相关阅读:
    CodeForces 156B Suspects(枚举)
    CodeForces 156A Message(暴力)
    CodeForces 157B Trace
    CodeForces 157A Game Outcome
    HDU 3578 Greedy Tino(双塔DP)
    POJ 2609 Ferry Loading(双塔DP)
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛 19000互质的个数
    Java 第十一届 蓝桥杯 省模拟赛十六进制转换成十进制
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4371410.html
Copyright © 2011-2022 走看看