• 学习java随笔第十篇:java线程


    线程生命周期

    线程的生命周期:新建状态、准备状态、运行状态、等待/阻塞状态、死亡状态

    示意图:

    定义、创建及运行线程

    线程:

     1 package threadrun;
     2 
     3 //定义一个实现Runnable接口的类
     4 class Myrunable1 implements Runnable
     5 {
     6     public void run()
     7     {
     8         for(int i=0;i<=50;i++)
     9         {
    10             System.out.println("线程1");
    11         }
    12     }
    13 }
    14 //定义一个实现Runnable接口的类
    15 class Myrunable2 implements Runnable
    16 {
    17     public void run()
    18     {
    19         for(int i=0;i<=50;i++)
    20         {
    21             System.out.println("线程2");
    22         }
    23     }
    24 }
    25 
    26 public class thread1 {
    27     public static void main(String arges[])
    28     {
    29         Myrunable1 m1=new Myrunable1();
    30         Myrunable2 m2=new Myrunable2();
    31         Thread t1=new Thread(m1);
    32         Thread t2=new Thread(m2);
    33         t1.start();
    34         t2.start();
    35     }
    36 }

     运行结果:

    加一个让线程睡眠的方法

     1 package threadrun;
     2 
     3 //定义一个实现Runnable接口的类
     4 class Myrunable1 implements Runnable
     5 {
     6     public void run()
     7     {
     8         for(int i=0;i<=4;i++)
     9         {
    10             try {
    11                 Thread.sleep(50);//使用sleep方法使线程进入睡眠状态50毫秒
    12             } catch (InterruptedException e) {
    13                 
    14                 e.printStackTrace();
    15             }
    16             System.out.println("线程1");
    17         }
    18     }
    19 }
    20 //定义一个实现Runnable接口的类
    21 class Myrunable2 implements Runnable
    22 {
    23     public void run()
    24     {
    25         for(int i=0;i<=4;i++)
    26         {
    27             try {
    28                 Thread.sleep(50);//使用sleep方法使线程进入睡眠状态50毫秒
    29             } catch (InterruptedException e) {
    30                 
    31                 e.printStackTrace();
    32             }
    33             System.out.println("线程2");
    34         }
    35     }
    36 }
    37 
    38 public class thread1 {
    39     public static void main(String arges[])
    40     {
    41         Myrunable1 m1=new Myrunable1();
    42         Myrunable2 m2=new Myrunable2();
    43         Thread t1=new Thread(m1);
    44         Thread t2=new Thread(m2);
    45         t1.start();
    46         t2.start();
    47     }
    48 }

    运行结果:

    设置线程优先级

     1 package threadrun;
     2 
     3 //定义一个实现Runnable接口的类
     4 class Myrunable1 implements Runnable
     5 {
     6     public void run()
     7     {
     8         for(int i=0;i<=4;i++)
     9         {
    10             System.out.println("线程1");
    11         }
    12     }
    13 }
    14 //定义一个实现Runnable接口的类
    15 class Myrunable2 implements Runnable
    16 {
    17     public void run()
    18     {
    19         for(int i=0;i<=4;i++)
    20         {
    21             System.out.println("线程2");
    22         }
    23     }
    24 }
    25 
    26 public class thread1 {
    27     public static void main(String arges[])
    28     {
    29         Myrunable1 m1=new Myrunable1();
    30         Myrunable2 m2=new Myrunable2();
    31         Thread t1=new Thread(m1);
    32         Thread t2=new Thread(m2);
    33         //设置线程优先级
    34         t1.setPriority(Thread.MAX_PRIORITY);//最高优先级
    35         t2.setPriority(Thread.MAX_PRIORITY);//最低优先级
    36         t1.start();
    37         t2.start();
    38     }
    39 }
    线程优先级

    运行结果:

    package threadrun;
    
    //定义一个实现Runnable接口的类
    class Myrunable1 implements Runnable
    {
        public void run()
        {
            for(int i=0;i<=4;i++)
            {
                try {
                    Thread.sleep(50);//使用sleep方法使线程进入睡眠状态50毫秒
                } catch (InterruptedException e) {
                    
                    e.printStackTrace();
                }
                System.out.println("线程1");
            }
        }
    }
    //定义一个实现Runnable接口的类
    class Myrunable2 implements Runnable
    {
        public void run()
        {
            for(int i=0;i<=4;i++)
            {
                try {
                    Thread.sleep(50);//使用sleep方法使线程进入睡眠状态50毫秒
                } catch (InterruptedException e) {
                    
                    e.printStackTrace();
                }
                System.out.println("线程2");
            }
        }
    }
    
    public class thread1 {
        public static void main(String arges[])
        {
            Myrunable1 m1=new Myrunable1();
            Myrunable2 m2=new Myrunable2();
            Thread t1=new Thread(m1);
            Thread t2=new Thread(m2);
            //设置线程优先级
            t1.setPriority(Thread.MAX_PRIORITY);//最高优先级
            t2.setPriority(Thread.MAX_PRIORITY);//最低优先级
            t1.start();
            t2.start();
        }
    }
    带睡眠方法的线程优先级

    运行结果:

  • 相关阅读:
    Struts2整合Spring
    关于碰撞检测的相关信息
    直角三角形
    XNA 3.0初步——自定义游戏循环时间
    XNA 3.0初步——将你的XNA 3.0游戏部署到Zune
    XNA 3.0初步——开始第一个XNA 3.0项目
    创建场景和赛道——概览
    XNA 3.0初步——将你的XNA 3.0游戏部署到另一台PC
    创建场景和赛道——场景绘制
    创建场景和赛道——游戏比较
  • 原文地址:https://www.cnblogs.com/langmanshuyuan/p/3802678.html
Copyright © 2020-2023  润新知