• java 初学多线程02


    获取自定义线程的名字

    1 package com.oracle.Demo03;
    2 
    3 public class Demo01 extends Thread{
    4     public void run(){
    5         //获取线程的名称
    6         String str = super.getName();
    7         System.out.println(str);
        }
      }

    然后在main方法里调用start方法就行了

     1 package com.oracle.Demo03;
     2 
     3 public class Demo01 extends Thread{
     4     public void run(){
     5         //获取线程的名称,也可以这样用currentThread方法
     6         Thread th =Thread.currentThread();
     7         System.out.println(th.getName());
     8         
     9     }
    10     
    11 }

    在main方法里调用start方法就行

    获取main方法的线程名字

     1 package com.oracle.Demo03;
     2 
     3 public class Test {
     4 
     5     public static void main(String[] args) {
     6         //先获取当前执行的线程对象
     7         Thread m =Thread.currentThread();
     8         //输出线程对象的名称
     9         System.out.println(m);
    10 
    11     }
    12 }

    修改自定义线程的名字

     1 package com.oracle.Demo03;
     2 
     3 public class Test02 {
     4 
     5     public static void main(String[] args) {
     6         // 设置线程的名称
     7         Demo02 de =new Demo02();
     8         de.setName("myThread");  //调用setName方法,把需要改的名字传进去,然后调用
     9         de.start();
    10         }
    11 }

    用构造函数自定义函数的名字

    1 package com.oracle.Demo03;
    2 
    3 public class Demo02 extends Thread {
    4     Demo02(String name){      //重写构造方法,把修改的名字传进来
    5         super(name);
    6     }
    7     public void run(){}
    8 }
     1 package com.oracle.Demo03;
     2 
     3 public class Test02 {
     4 
     5     public static void main(String[] args) {
     6         // 设置线程的名称
     7         //用构造方法给线程改名字赋值
     8         Demo02 de = new Demo02("阿安安");
     9         de.start();
    10         System.out.println(de.getName());    
    11     }
    12 }

    另一种创建线程的方式——Runnable

    声明实现Runnable接口类,然后实现run方法,创建Thread,然后传进去

     1 package com.oracle.Demo03;
     2 
     3 public class Demo04 implements Runnable{  继承Runnable,重写run方法
     4 
     5     public void run() {
     6         for(int i=0;i<10;i++){
     7             System.out.println("Runnable"+i);
     8         }
     9     }
    10 }
     1 package com.oracle.Demo03;
     2 
     3 public class Test04 {
     4     public static void main(String[] args) throws InterruptedException {
     5         Thread th = new Thread(new Demo04());  创建Thread对象,传入实现Runnable的方法,调用开启线程的方法
     6         th.start();10     }
    11 }

    继承Runnable的好处

    1.因为Runnable是接口可以多继承,避免的java继承的单一性

    2.实现Runadbe类,把run封装到Runnable中,调用start方法时,通过参数传递去找到Runnable中的run方法,线程创建对象时就可以明确线程任务

    3.更加符合面向对象,一部分为线程对象,一部分为线程任务,实现Runnable接口,将线程任务封装成对象,降低耦合性。

    线程的匿名内部类的使用

    匿名内部类的前提必须有继承或者实现

    格式是 new 父类或者接口(){

        执行程序            

        }.方法();

    Tread类:

     1     public static void main(String[] args) {
     2         // 匿名内部类的前提,必须要有继承或者实现
     3         //格式 new 父类或接口(){
     4         //            要重写的方法
     5         //        }.方法();
     6         //1.继承匿名内部类
     7         new Thread(){
     8             public void run(){
     9                 for(int i=0;i<5;i++){
    10                     System.out.println("Thread"+i);
    11                 }
    12             }
    13         }.start();

    2.实现Runnable接口匿名内部类

        Runnable r = new  Runnable(){
                public void run(){
                    for(int i=0;i<5;i++){
                        System.out.println("Runnable"+i);
                    }
                }
            };
        /*    Thread th = new Thread(r);
            th.start();*/     方法调用可以有多种
        //    new Thread(r).start();    
        }
    
    }
  • 相关阅读:
    服务器监控
    hadoop
    tomcat7 配置
    tomcat
    列表加载
    自适应网页设计(Responsive Web Design)
    Android Native 代码NDK开发学习笔记
    NDK开发历程(一):android native code的调试方法
    Android原生(Native)C开发之一:环境搭建篇
    ajaxfileupload 传参数
  • 原文地址:https://www.cnblogs.com/wangrongchen/p/9225180.html
Copyright © 2020-2023  润新知