• JAVA实现多线程入门


    1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种机制被称为多线程

    2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable接口

    3:Thread类是java.lang包中的一个类,从这个类实例化的对象代表线程

    4:完成线程真正功能的代码是放在run()方法中的,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread 类中的strat()方法执行线程,也就是调用run()方法。

     1 package com.thread;
     2 /**
     3  * 1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种
     4  * 机制被称为多线程
     5  * 2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable
     6  * 接口
     7  * 3:Thread泪时java.lang包中的一个类,从这个类实例化的对象代表线程
     8  * 4:完成线程真正功能的代码是放在run()方法中的,当一个泪继承Thread类后,就可以
     9  * 在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread
    10  * 类中的strat()方法执行线程,也就是调用run()方法。
    11  * @author biexiansheng
    12  *
    13  */
    14 public class ThreadTest extends Thread {//指定类继承Thread类
    15     
    16     private int count=10;
    17     public void run(){//重写run()方法
    18         while(true){
    19             System.out.print(count+" ");//打印count变量
    20             if(--count==0){//使count变量自减,当自减为0时,退出循环
    21                 return;
    22             }
    23         }
    24     }
    25     public static void main(String[] args) {
    26         //new ThreadTest().start();
    27         Thread t=new ThreadTest();//两种方法都可以实现线程运行
    28         t.start();
    29     }
    30 }

    示例如下

     1 package com.thread;
     2 /**
     3  * 1:多线程实例练习
     4  * @author biexiansheng
     5  *
     6  */
     7 public class ThreadTest1 extends Thread{
     8 
     9     //多线程的实现都是在run()方法中实现的
    10     public void run(){
    11         System.out.println(getName()+"登上舞台");
    12         int count=0;//定义一个变量
    13         while(count<=100){
    14             System.out.println(getName()+"登上"+count+"次舞台");
    15             count++;
    16             if(count%10==0){
    17                 try {
    18                     Thread.sleep(2000);//捕获异常,休眠2秒
    19                 } catch (InterruptedException e) {
    20                     // TODO Auto-generated catch block
    21                     e.printStackTrace();
    22                 }//
    23             }
    24         }
    25         System.out.println(getName()+"走下舞台");
    26     }
    27     public static void main(String[] args) {
    28         // TODO Auto-generated method stub
    29         Thread t=new ThreadTest1();
    30         t.setName("Mr.Thread");
    31         t.start();
    32         //new ThreadTest1().start();
    33         
    34         //实现Runnable接口
    35         Thread t1=new Thread(new RunnableTest(),"Ms.Runnable");
    36         t1.start();
    37     }
    38 }
    39 
    40 class RunnableTest implements Runnable{
    41 //写完上一句,类名报错,说明实现一个接口,就要实现这个接口内的方法
    42     @Override
    43     public void run() {
    44         // TODO Auto-generated method stub
    45         System.out.println(Thread.currentThread().getName()+"走上了舞台");
    46         //Runnable接口实现getName必须通过线程的currentThread()方法得到
    47         int count=0;//定义一个变量
    48         while(count<=100){
    49             System.out.println(Thread.currentThread().getName()+"登上"+count+"次舞台");
    50             count++;
    51             if(count%10==0){
    52                 try {
    53                     Thread.sleep(2000);//捕获异常,休眠2秒
    54                 } catch (InterruptedException e) {
    55                     // TODO Auto-generated catch block
    56                     e.printStackTrace();
    57                 }//
    58             }
    59         }
    60         System.out.println(Thread.currentThread().getName()+"走下舞台");
    61     
    62     }
    63     
    64 }
  • 相关阅读:
    saveField方法
    cake使用事务的方法
    css 中引用css的方法
    一次标准的关联查询
    try cath用处
    使用其他模型分页$data = $this>paginate('MerchantProductOrder');
    jquery 常用代码
    php 邮箱验证原理
    cake 分页一个典型的条件
    一次典型的查询
  • 原文地址:https://www.cnblogs.com/honglikeji/p/7453570.html
Copyright © 2020-2023  润新知