zoukankan      html  css  js  c++  java
  • JAVA_SE基础——72.自定义线程

     进程 :  正在执行的程序称作为一个进程。  进程负责了内存空间的划分。
     
    问题: windows号称是多任务的操作系统,那么windows是同时运行多个应用程序吗?

    从宏观的角度: windows确实是在同时运行多个应用程序。

    从微观角度: cpu是做了一个快速切换执行的动作,由于速度态度,所以我感觉不到在切换 而已。


    线程: 线程在一个进程 中负责了代码的执行,就是进程中一个执行路径,


    多线程: 在一个进程中有多个线程同时在执行不同的任务。


    疑问 :线程负责了代码 的执行,我们之前没有学过线程,为什么代码可以执行呢?
    运行任何一个java程序,jvm在运行的时候都会创建一个main线程执行main方法中所有代码。


    一个java应用程序至少有几个线程?
    至少有两个线程, 一个是主线程负责main方法代码的执行,一个是垃圾回收器线程,负责了回收垃圾。


    多线程的好处:
    1. 解决了一个进程能同时执行多个任务的问题。
    2. 提高了资源的利用率。


    多线程 的弊端:
    1. 增加cpu的负担。
    2. 降低了一个进程中线程的执行概率。
    3. 引发了线程安全 问题。
    4. 出现了死锁现象。

    如何创建多线程:

    创建线程的方式:

    方式一:
    1. 自定义一个类继承Thread类。
    2. 重写Thread类的run方法 , 把自定义线程的任务代码写在run方法中
    疑问: 重写run方法的目的是什么?  
      每个线程都有自己的任务代码,jvm创建的主线程的任务代码就是main方法中的所有代码, 自定义线程的任务代码就写在run方法中,自定义线程负责了run方法中代码。
    3. 创建Thread的子类对象,并且调用start方法开启线程。

    注意: 一个线程一旦开启,那么线程就会执行run方法中的代码,run方法千万不能直接调用,直接调用run方法就相当调用了一个普通的方法而已

    并没有开启新的线程。

    public class Demo1 extends Thread {
    	
    	@Override  //把自定义线程的任务代码写在run方法中。
    	public void run() {
    		for(int i  = 0 ; i < 10 ; i++){
    			System.out.println("自定义线程:"+i);
    		}
    	}
    	
    	
    	public static void main(String[] args) {
    		//创建了自定义的线程对象。
    		Demo1 d = new Demo1();
    		//调用start方法启动线程
    		d.start();
    		
    		for(int i  = 0 ; i < 10 ; i++){
    			System.out.println("main线程:"+i);
    		}
    	}
    
    	
    	
    }
    运行结果:

    main线程:0
    main线程:1
    main线程:2
    main线程:3
    main线程:4
    main线程:5
    自定义线程:0
    自定义线程:1
    自定义线程:2
    main线程:6
    自定义线程:3
    自定义线程:4
    自定义线程:5
    自定义线程:6
    自定义线程:7
    main线程:7
    main线程:8
    main线程:9
    自定义线程:8
    自定义线程:9


    看运行结果是不是有种资源抢夺的意思? 这就是多线程的基本原理了

  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/Jhaiha0/p/8465267.html
Copyright © 2011-2022 走看看