zoukankan      html  css  js  c++  java
  • Java中的线程创建

    package com.fgy.demo01;
    
    public class MyThread extends Thread {
        @Override
        public void run() {
            for (int i = 0; i < 20; i++) {
                System.out.println("run:" + i);
            }
        }
    }
    /**
     * 创建多线程程序的第一种方式,创建Thread类的子类
     * 多次启动一个线程是非法的,特别是当线程已经结束执行后,不能再重新启动
     * java程序属于抢占式调度,哪个线程的优先级高,哪个线程就优先执行,同一个优先级,随机选择一个执行
     */
    public class Demo01Thread{
        public static void main(String[] args) {
            MyThread mt = new MyThread();
         mt.setName("线程名称"); mt.start();
    for (int i = 0; i < 20; i++) { System.out.println("main:" + i); } } }

    package com.fgy.demo01;
    
    public class MyRunnable implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 20; i++) {
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
    package com.fgy.demo01;
    
    /**
     * 创建多线程程序的第二种方式,实现Runnable接口
     */
    public class Demo02Thread {
        public static void main(String[] args) {
         // new Thread(new MyRunnable(), "线程名称").start(); 
            new Thread(new MyRunnable()).start();
    
            for (int i = 0; i < 20; i++) {
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
    package com.fgy.demo01;
    
    /**
     * 匿名内部类方式实现线程的创建
     */
    public class InnerClassThread {
        public static void main(String[] args) {
            new Thread() {
                @Override
                public void run() {
                    for (int i = 0; i < 20; i++) {
                        System.out.println(getName() + ":" + i);
                    }
                }
            }.start();
    
            new Thread(
                new Runnable() {
                    @Override
                    public void run() {
                        for (int i = 0; i < 20; i++) {
                            System.out.println(Thread.currentThread().getName() + ":" + i);
                        }
                    }
                }
            ).start();
        }
    }

    创建多线程程序的第三种方式:

      

  • 相关阅读:
    Docker启动ubuntu容器中使用sudo后报错,bash: sudo: command not found
    Redis持久化rdb&aof
    Python3中copy模块常用功能及其他几种copy方式比较
    学习笔记:tkinter模块常用参数(python3)
    Python核心编程第二版(中文).pdf 目录整理
    11、487-3279
    10、Crashing Balloon
    9、Exponentiation
    8、Fire Net
    7、Reverse Root
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12104437.html
Copyright © 2011-2022 走看看