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);
    		}
    	}
    }
    
  • 相关阅读:
    02-三种布局方式/触屏事件/BFC
    02-单点登录(移动端)
    02-转>>chunk-vendors过大导致首屏加载太慢的优化
    15-转>pc端和h5端多页面配置
    14-转>publicPath
    04-GitHub上上传自己的项目
    03-合并到master后打tag
    final关键字
    重载(Overloading)与覆写(Override)的区别?
    腾讯微博
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/3809082.html
Copyright © 2011-2022 走看看