zoukankan      html  css  js  c++  java
  • 线程

    进程是一个静态的概念,线程是一个进程里面的不同的执行路径,一个cpu实际上每个时间点只能执行一个线程

    • (继承,重写,父类引用指向子类对象)
    • package com.site.line;
      
      public class TestLine {
          public static void main(String[] args) {
              m1();
          }
          public static void m1(){
              m2();
              m3();
      
          }
          public static void m2(){};
          public static void m3(){};
      }

      创建线程:

    • package com.site.line;
      
      public class StartLine {
          public static void main(String[] args) {
              Runner1 r = new Runner1();
              Thread t = new Thread(r);
              t.start();//调用start方法,线程启动
      
              for (int i=0;i<100;i++){
                  System.out.println("Main Thread:----"+i);
              }
          }
      }
      //实现Runner接口
      class Runner1 implements  Runnable{
          @Override
          //实现run()方法
          public void run() {
              for (int i = 0; i <100 ; i++) {
                  System.out.println("Runner1:"+i);
              }
          }
      }

      线程启动方法一:重写Runnable接口,实例化Thread对象再启动线程

    • package zrm;
      
      public class Threadl {
          /*thread*/
          public static void main(String[] args) {
              Runner1 runner1 = new Runner1();
              Thread thread = new Thread(runner1);
              thread.start();
              for (int ii = 0; ii < 1000; ii++) {
                  System.out.println("this is the main thread:" + ii);
              }
          }
      }
      /*重写Runnable接口*/
      class Runner1 implements Runnable {
          @Override
          public void run() {
              for (int i = 0; i < 1000; i++) {
                  System.out.println("this is runnale's run():" + i);
              }
          }
      }

      方法二:直接用一个子类继承Thread类,并且重写Thread的run()方法

    • package com.site.line;
      
      public class StartLine {
          public static void main(String[] args) {
              Runner1 r = new Runner1();
              r.start();//直接使用
              //Thread t = new Thread(r);//这里就不需要在new一个新的Thread对象
              //t.start();
      
              for (int i=0;i<100;i++){
                  System.out.println("Main Thread:----"+i);
              }
          }
      }
      //实现Runner接口
      //class Runner1 implements  Runnable{
      class Runner1 extends Thread{
          //实现run()方法
          public void run() {
              for (int i = 0; i <100 ; i++) {
                  System.out.println("Runner1:"+i);
              }
          }
      }

      线程的状态转换:

    • 线程的一些常用方法;
  • 相关阅读:
    YII 数据插入 save() 方法
    springboot md5 加密
    yii 在model中实现连表查询
    yii 获取登录用户的信息
    yii 在GridView中怎样添加html代码
    yii 返回json数据
    Qt 错误:QMainWindow: No such file or directory 解决方法
    Qt 错误:QtGui/QApplication在Qt5没有这个文件
    VMware Ubuntu 虚拟机安装 VMwareTools (VMware虚拟机如何与主机互相复制文件)
    VMware15、Ubuntu19.04、安装教程(图文步骤)
  • 原文地址:https://www.cnblogs.com/zrmj/p/11358878.html
Copyright © 2011-2022 走看看