zoukankan      html  css  js  c++  java
  • 多线程

    进程线程和线程的概念
    进程:
           在windows中,每一个打开运行的应用程序或后台程序,比如运行中的QQ、谷歌浏览器、网易云音乐、资源管理器等都是一个进程
      我们都知道程序,一个程序是静态的,通常是存放在外存中的。而当程序被调入内存中运行后,就成了进程。 
           顾名思义,进程就是进行中的程序,它是个动态的概念。是系统进行资源分配与调度的基本单位.
      
          独立性: 进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自
          己私有的地址空间。在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他
          进程的地址空间。
          动态性: 进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中
          活动的指令集合。在进程中加入了时间的概念。进程具有自己的生命周期和各种不同的状态,
          这些概念在程序中都是不具备的。
          并发性: 多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。

    线程:线程就是进程中执行运算最小的单位.
    继承Threa类创建多线程
      1.建类>>继承Thread类>>重写run方法
      2.Thread.currentthread().getName():  获取线程名称
      3.start();[启动线程] 
     
     注:开启多个线程是交替执行的
      4.直接调用run方法
      a.只有主线程一条执行路径
      b.依次执行两次run方法
    案例:
      
    public class MyThread extends Thread {
        
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println(i + 1+Thread.currentThread().getName());
            }
        }
    
    }

    启动线程:

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            MyThread t1 = new MyThread();
                t1.start();
                
        }          

    结果:
    实现Runnable接口创建多线程

     a.定义一个Runnable接口的实现类 (类名 implems Runnable)

       

    b.重写Run方法

    c.创建线程对象Runnable 类名 =new  Runnable ();

     Thread 对象名称=new Therad(类名,"线程名称");

     d.启动线程 start();

     e.继承Therad类和实现Runnable接口的区别

       继承:编写简单缺点继承的单根性

       接口:避免单继承,便于资源共享

       推荐使用实现Runnable接口

    案例:

    public class MyRunnable implements Runnable {
    
        @Override
        public void run() {
            
            System.out.println("我是接口实现多线程");
            
        }
    }

    启动线程:

        public static void main(String[] args) {
            MyRunnable mr = new MyRunnable();
            Thread t2 = new Thread(mr);
            t2.start();
        }

    Thread类的常用方法

      

     

      部分方法的演示

      

     线程的五种状态

       当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线
       程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked) 和死
       亡(Dead) 五种状态。尤其是当线程启动以后,它不能一直“霸占”着CPU 独自运行,所以CPU 需
       在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。
       如图:

      

  • 相关阅读:
    (转)C# DllImport的用法
    (转)C#网络编程(异步传输字符串) Part.3
    (转)C#网络编程(订立协议和发送文件) Part.4
    C# tostring()汇总
    (转)C#网络编程(基本概念和操作) Part.1
    (转)关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
    C# sql server 数据库备份和还原
    (转)C#网络编程(接收文件) Part.5
    2010年5月学习计划
    APUE学习笔记 Chapter 2 . Unix Standardization and Implementations
  • 原文地址:https://www.cnblogs.com/yzwss/p/8541241.html
Copyright © 2011-2022 走看看