zoukankan      html  css  js  c++  java
  • java线程理解001

    概念:线程和进程

    进程:简单的说,进程就是一个应用,即一个程序。现在的操作系统普遍都是多进程的操作系统。比如:你可以同时打开音乐播放器,也可以同时打开浏览器和视频播放器。

    线程:线程,存在于进程之中,理解为一个进程中有多个线程。现在的程序也大多是多线程程序。比如:一个音乐播放器既可以同时播放音乐,也可以同时下载音乐。

    单线程和多线程的执行顺序:

    单线程程序执行:线程执行逐步向下,最终结束。

    多线程程序执行:两个线程间快速切换(抢夺CPU资源),获得CPU资源的执行向下

    注:多线程本质上也是单线程程序,只是由于CPU切换很快很快,给我们的错觉就是两个任务同时进行。

    线程的执行过程:

     

    1.实例化一个线程对象并调用start()方法,线程进入就绪状态(可以去抢占CPU资源)。

    2.当获取到CPU资源时,进入Running状态(执行状态)。

    3.Running状态时,可能遇到其他情况(比如访问网络时没有资源),就如阻塞Blocked状态,当接触了阻塞是进入就绪状态。

    4.run()方法执行完毕后,该线程死亡Dead

    由以上线程运行推断出,线程的主要方法写在run()方法中,也称run()方法体为线程体。

    例子分析:

     

    测试类主函数:

    package interThread_v001;
    
     
    
    public class Test_v001
    
    {
    
        public static void main(String args[])
    
        {
    
            // 实例化Thread对象
    
            Thread_v001 tv = new Thread_v001();
    
            // 启动线程 -->进入就绪状态
    
            tv.start();
    
            // tv.run();
    
     
    
            for (int i = 0; i < 100; i++)
    
            {
    
                System.out.println("mainThread-->" + i);
    
            }
    
        }
    
    }
    
     
    
    //线程类:(重写了run()方法)
    
     
    
    package interThread_v001;
    
     
    
    public class Thread_v001 extends Thread
    
    {
    
        // 继承jdk提供的Thread类,重写run()方法
    
        public void run()
    
        {
    
            for(int i = 0; i < 100;i++)
    
            {
    
                System.out.println("Thread_v001-->" +i);
    
            }
    
        }
    
    }
    
     

    执行结果:

     

    分析:由执行结果可以看出:其中两个循环是相互交叉执行(执行顺序不定)的,其中先实例化线程对象,并调用start()方法,进入就绪状态,并和主函数(for循环)抢占CPU,抢占到的先执行。

    从中可以看出,线程的执行是混乱的,并且是不可控的。

    注意:线程对象不能直接调用run()方法,如果直接调用,就是单线程了,不存在抢占的概念。

  • 相关阅读:
    freemarker模板引擎 常用标签
    SSH面试题
    JAVA 2013面试题-下
    JAVA 2013面试题-上
    String和StringBuffer
    http请求和http响应详细解析
    一种将汉字转换为拼音的更简单的方法
    中文字符串排序
    UIControl类控件统一管理
    日期转换
  • 原文地址:https://www.cnblogs.com/BeyondAverage0908/p/4020531.html
Copyright © 2011-2022 走看看