• Java多线程系列-线程创建


    1.怎样创建多线程?
    Java从语言级别实现多线程,因此实现一个多线程程序很easy。有两种方法能够实现多线程,即继承Thread类和实现Runnable接口。由于Java不支持多继承的原因,建议尽可能通过实现Runnable接口实现多线程。

    使用Runnable接口实现多线程有例如以下长处:
    1、能够避免由于Java的单继承特性而带来的局限。
    2、增强程序的健壮性。代码能够被多个线程共享。代码与数据是独立的;
    3、适合多个同样程序代码的线程区处理同一资源的情况。


    两者之间的不同:
    *Thread也实现了Runnable接口,因此继承自Thread类的子类也实现了Runnable接口
    *继承Thread类实现多线程,每个线程都独占run方法中的代码,而实现Runnable接口实现的多线程共同拥有run方法中的数据和代码。


    *继承Thread类实现多线程,由于独占代码全部不会有线程安全的问题。Runnable接口实现的多线程是不安全的。

    以多个窗体销售车票的情况为样例。样例和代码引自:http://blog.csdn.net/ns_code/article/details/17161237
    以继承Thread类实现多线程的代码:

    class MyThread extends Thread{
        private int ticket = 5;
        public void run(){
            for (int i=0;i<10;i++)
            {
                if(ticket > 0){
                    System.out.println("ticket = " + ticket--);
                }
            }
        }
    }
    
    public class ThreadDemo{
        public static void main(String[] args){
            new MyThread().start();
            new MyThread().start();
            new MyThread().start();
        }
    }

    以实现Runnable接口实现多线程的代码为:

    class MyThread implements Runnable{
        private int ticket = 5;
        public void run(){
            for (int i=0;i<10;i++)
            {
                if(ticket > 0){
                    System.out.println("ticket = " + ticket--);
                }
            }
        }
    }
    
    public class RunnableDemo{
        public static void main(String[] args){
            MyThread my = new MyThread();
            new Thread(my).start();
            new Thread(my).start();
            new Thread(my).start();
        }
    }
  • 相关阅读:
    Upgrading to MySQL 5.7---focusing on temporal types
    mysqldump备份7
    mysqldump原理5
    mysqldump原理4
    mysqldump原理3
    mysqldump原理2
    mysqldump原理1
    MySQL复制中slave延迟监控
    赵浮云的blog 关注IT运维,开源硬件。
    爱维帮---LVS
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7202745.html
Copyright © 2020-2023  润新知