zoukankan      html  css  js  c++  java
  • java用Thread方式创建多线程

    进程:一个正在执行的程序,每一个进程都有一个执行顺序,该
    顺序是一个执行路径,或者叫一个控制单元。
    线程:进程中一个独立的控制单元。线程控制着进程的执行。
    一个进程中至少有一个线程。

    java VM中至少有一个线程负责java程序的执行。
    而且这个线程运行的代码存在于main方法中。该线程为主线程。

    扩展,jvm启动了两个线程,一个主线程,一个垃圾回收机制的线程。

    1.怎样创建一个多线程?
    第一种方法:通过继承Thread类的方法
    1.继承Thread类
    2.重写Thread类的run()方法
    目的:将自定义的代码存储在run()方法中,让线程运行。
    3.调用线程的start()方法。
    (了解:多核编程,单核cpu的时候多线程的切换由线程控制,多核cpu下
    则每个cpu可以同时处理多线程,单个cpu在同一时间只能执行一个线程,
    多核下内存是瓶颈)

    多线程具有随机性:
    因为多线程都获取cpu的执行权。cpu执行到谁,谁就执行。明确一点,在某一时刻
    只能有一个程序在运行。(多核除外),cpu在做着快速的切换,以达到看上去是同
    事运行的效果。至于每个线程执行多久,cpu说了算,(其实我们可以控制执行时间爱你)
    为什么要覆盖run()方法?
    Thread类用于描述线程。该类定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。
    也就是说Thread类中的run()方法用于存储线程要运行的代码。

    //实例:
    class Demo extends Thread
    {
    	public void run(){
    		for(int x=0;x<200;x++){
    			System.out.println("run--------------"+x);
    		}
    		
    	}
    
    }
    
    class  ThreadDemo
    {
    	public static void main(String[] args) 
    	{
    		Demo d=new Demo();//创建好了一个线程
    
    		/*
    			d.start()和d.run()的区别?
    		*/
    		d.start();//开启线程并执行该线程的run()方法。运行线程是随机的
    		//d.run();//仅仅是对象调用方法。线程创建了,却并没有运行。运行的结果每次都是一样的。
    
    		for(int x=0;x<200;x++){
    			System.out.println("HelloWold----------"+x);
    		}
    	}
    }
    
  • 相关阅读:
    抽象类与接口的区别
    模板模式(Template Pattern)
    KVM虚拟化
    find文本处理(locate)实例学习记录
    AWK-文本处理测试实例记录
    Linux系统中如何查找大文件
    吞吐量和Iops、测试工具FIO使用
    linux了解
    了解docker
    语言资源国际化
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/3809082.html
Copyright © 2011-2022 走看看