多线程基础

来源:互联网 发布:陕西省软件企业协会 编辑:程序博客网 时间:2024/06/06 01:11

什么是并发:  

同时执行多个程序,或者一个程序的多段代码

在宏观上,存在并发的,但是在微观上,其实不存在并发

时间片 :   在计算机中,使用时间片来实现并发的运算

在计算甲中,在最小的单位时间上

只能执行一个运算

用来控制多个程序之间的轮转,使得程序交替的运行

达到并发的目的

多个cpu  多个核心  才能实现真正的并发

进程和线程的概念:

进程在操作系统中,运行的每一个程序 都可以认为是一个进程

线程能够并发的执行代码

一个进程是由多个线程组成的

并不是说  你一次 我一次  而是通过时间片实现切换

当且仅当 时间到了  才进行线程间的切换

如何实现多线程(两种方法)?

方法1、继承Thread  类,重写run方法,通过start方法开启线程

可以手动调用run方法,但是它不是一个线程

每个线程只能开启一次,如果想多次开启,需要重新创建对象

方法2、实现Runnable接口,重写run方法,通过start方法开启线程


A:TestThreadA

public class TestThreadA extends Thread

{   @Override

    public void run()

    {

        //模拟视频的播放

        for (int i = 0; i < 100; i++)

        {

            System.out.println(i);  

        }

    }

    public static void main(String[] args)

    {

        TestThreadA ta =  new TestThreadA();  

        // 可以调用run方法,只是执行普通的方法,并不具备线程的特性 

//        ta.run();       

        //开启线程,通过  start方法

        ta.start();

        ta =  new TestThreadA();

        ta.start();

        

//        //模拟音频的播放

//        for (int i = 0; i < 10000; i++)

//        {

//            System.out.println("a");

//        }    

    }

}

B:TestThreadB

public class TestThreadB

{

    public static void main(String[] args)

    {

        MyRunnable run = new MyRunnable();

        

        Thread t = new Thread(run);

        

        t.start();

        

    }

}


class MyRunnable implements Runnable{


    @Override

    public void run()

    {

        for (int i = 0; i < 100; i++)

        {

            System.out.println(i);

        }

    }



}




1 0
原创粉丝点击