zoukankan      html  css  js  c++  java
  • Java连载103-多线程

    一、多线程

    1.基本概念:

    (1)进程:一个进程对应一个应用程序。例如:在windows中启动Word就表示启动了一个进程。在java的开发环境中启动JVM,就表示启动了一个进程。现在计算机是支持多进程的,在同一个操作系统中,可以启动多个进程。

    (2)多进程的作用:多进程的作用不是提高执行速度,而是为了提高CPU的使用率。

    (3)内存:进程和进程之间的内存是独立的。

    (4)线程:一个进程中的执行场景,一个进程可以启动多个线程

    (5)多线程的作用:多线程不是为了提高执行速度,而是为了提高应用程序的使用率。

    (6)线程和线程之间是共享“堆内存和方法区内存”的,栈内存是独立的。,一个线程一个栈

    二、java程序的运行原理

    java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,表示启动了一个进程。该进程会启动一个“主线程”,然后主线程去调用每个类的main方法,所以main方法运行在主线程中,在此之前的所有程序(就是讲过的)都是单线程的

    一个main方法就是一个线程,无论之前已经定义多少个方法

    三、线程的创建与使用

    1.如何定义线程

    在java语言中实现多线程的第一种方式

    第一步:继承java.util.Thread

    第二步:重写run方法;

    2.如何创建线程?

    创建一个多线程的多态对象

    3.如何启动线程?

    对象.start();

    4.java中实现多线程的第二种方式

    第一步:写一个类实现java.lang.Ruan

    第二步:实现run方法。

    5.推荐使用第二种方式,因为一个类实现接口之外保留了类的继承

    package com.bjpowernode.java_learning;
    
    ​
    
    public class D103_1_MultiThread {
    
      public static void main(String[] args) {
    
        //创建线程
    
        Thread t1 = new Processer103();
    
        //启动
    
        t1.start();
    
       
    
        //创建线程
    
        Thread t2 = new Thread(new Processer104());
    
        //启动
    
        t2.start();
    
       
    
      }
    
    }
    
    class Processer103 extends Thread{
    
      //重写run方法
    
      public void run() {
    
        for(int i=0;i<5;i++) {
    
          System.out.println(i);
    
        }
    
       
    
      }
    
    }
    
    ​
    
    class Processer104 implements Runnable{
    
      public void run() {
    
        for(int i=0;i<5;i++) {
    
          System.out.println(i);
    
        }
    
       
    
      }
    
     
    
    }

    四、源码:

    D103_1_MultiThread.java

    https://github.com/ruigege66/Java/blob/master/D103_1_MultiThread.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    deque-size
    deque-size
    deque-resize
    Android4.4——SurfaceFlinger启动
    关于linux signal 6 (SIGABRT)
    (OK) 编译ANDROID
    compile android: depmod: ERROR: Found 2 modules in dependency cycles!
    Fedora 25正式发布:工作站版默认启用Wayland显示服务器
    running ANDROID
    (3/4 OK) 在VirtualBox中运行 cm-13-kiwi (华为 荣耀 5X)
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12578645.html
Copyright © 2011-2022 走看看