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

    一.关于线程

    • 线程是执行java程序代码的基本单位
    • java线程是java平台的一部分

    二.java中的线程编程

    Thread类

    java中的线程已被封装为Thread类,void start()方法就是启动线程的方法,调用后会让线程去执行指定的方法。void run()是其中一个方法,start()方法会把它作为线程的起点。

    只要让一个类去继承Thread类,然后去覆盖其中的run()方法,那么就可以控制线程了

     1 public class UseThread{
     2         public static void main(String[] args){
     3             MyThread thread = new MyThread();
     4             thread.run;
     5         }
     6 }
     7 class MyThread extends Thread{
     8     public void run(){
     9         System.out.println("This is a thread code");
    10     }
    11 }

     可是一个类只能实现单继承,如果继承了线程类后,则无法继承其它类,于是这时候最好是使用接口。java提供了Runnable()接口,它包括了run()方法在内。Thread类中含有Runnable属性,构造方法可以是Thread(Runnable),只要Runnable不为null,那么就可以启用run()方法。

    public class UseThread {
        public static void main(String[] args){ MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.run(); } } class MyRunnable implements Runnable{ public void run(){ System.out.println("这是一个线程代码"); } }
    package study_java;
    
    public class Threadagain {
        public static void main(String[] args){
        Threadone threadone = new Threadone();
        Threadone threadtwo = new Threadone("线程1");
        
        
        threadtwo.start();
        threadone.start();
        threadone.printcurrentthread();
        threadtwo.printcurrentthread();
    }
        
    }
    class Threadone extends Thread{
        Threadone(){
            super();
        }
        Threadone(String name){
            super(name);
        }
        public void run(){
            System.out.println("这个线程是: " + this.getName());
        }
        public void printcurrentthread(){
            Thread threading = Thread.currentThread();
            String threadingname = threading.getName();
            System.out.println(threadingname);
        }
    }
    package study_java;
    
    public class Inner {
            public static void main(String[] args){
                PrintCurrentThread printer = new PrintCurrentThread();
                //匿名内部类
                Runnable runnable = new Runnable(){
                    public void run(){
                        PrintCurrentThread p = new PrintCurrentThread();
                        p.printcurrrentthread();
                    }
                };
                Thread thread = new Thread(runnable,"线程-1");
                thread.start();
                
                printer.printcurrrentthread();
            }
    }
    class PrintCurrentThread{
        public void printcurrrentthread(){
            Thread currentthread = Thread.currentThread();
            String threadname = currentthread.getName();
            System.out.println(threadname);
            
        }
    }
    package study_java;
    
    public class Threadagain {
        public static void main(String[] args){
        Threadone threadone = new Threadone();
        Thread thread = new Thread( threadone);
        thread.start();
    }
        
    }
    class Threadone implements Runnable{
        public void run(){
            System.out.println("这是一个我自己创建的线程");
        }
    }
     1 package study_java;
     2 
     3 public class Threadagain {
     4     public static void main(String[] args){
     5     
     6     Thread thread = new Thread( new Runnable() {
     7         public void run(){
     8             System.out.println("这是一个我自己创建的线程");
     9         }
    10     });
    11     thread.start();
    12 }
    13     
    14 }
    15 class Threadone implements Runnable{
    16     public void run(){
    17         System.out.println("这是一个我自己创建的线程");
    18     }
    19 }

     使用匿名类

  • 相关阅读:
    pycharm 对mysql的可视化操作
    pycharm连接linux创建django工程
    linux上安装pycharm
    pycharm激活码
    Windows下安装pip
    migrate设置
    python相对目录的基本用法(一)
    pycharm设置连接github
    在shell终端操作oracle数据库的常用命令
    在windows中把一个文件夹打成war包
  • 原文地址:https://www.cnblogs.com/xiaolei-meow/p/6549928.html
Copyright © 2011-2022 走看看