Thread的创建与运行

什么是线程(Thread)

	线程 本身与编程语言没有任何关系,而是与计算机结构中的CPU有关。
	我们经常听到,老王的电脑是8核CPU,牛X的不要不要的。
	那么,老王的CPU支持多少线程呢? long long ago ,CPU的核心线程比是1:1,
	我们吃的花生油一样。后来INTEL提出了多线程技术,将CPU核心数与线程数的
	比例提升到了 1:2 。现在我们用的电脑大多数都是按照1:2的核心线程比来的。

线程是CPU调度的最小单位

   8核CPU具备16线程数,也就是说某一时刻运行在该CPU的线程数量最大是16枚。
   每一个被CPU宠幸的线程将在CPU上停留一段时间,愉快的搞事情,一旦时间到了
   那么该线程将送回自己宫里去

线程在CPU中运行的时间

	被宠幸的线程,将在一个CPU时间片上完成所有花样。在规定的时间内
	没有完成想表现的动作,也只能是含恨离开,下次再说

	关于CPU时间片的长短,取决于操作系统的规定。

线程从哪里产生

	在操作系统中会为每一个运行的应用程序分配一个进程,在进程里包含了该应用程序运
行时所需要的各种资源。
	应用程序的进程至少包含了一个线程,否则CPU也无法宠幸(调度)它。因为上边已经说
过,线程才是CPU玩弄的对象。
	那么,线程是由应用程序进程所产生的,它通过抢占CPU时间片来使用CPU资源完成
自己要做的事情。

JAVA应用程序如何产生线程

Thread类

A thread is a thread of execution in a program. The Java
Virtual Machine allows an application to have multiple threads of
execution running concurrently.
这一段是摘自Thread类的开头注释,它表明Thread类是在一个程序内,
在JVM主线程里开辟独立线程的方式,最终达到多线程的运行效果

三种产生线程的方式

直接实例化Thread类并运行它:

// 这样就启动了一个什么不做的线程
Thread thread = new Thread() ;
thread.start();
//覆写Thread的RUN方法,在里面做一些我们想做的事情
Thread thread = new Thread(){
            @Override
            public void run() {
                System.out.println(getName());
            }
        } ;
thread.start(); 

通过Runnable接口启动线程:

        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
            	//实现Runnable接口方法来搞事情
                System.out.println(Thread.currentThread().getName());
            }
        });
        thread.start();

通过Callable接口启动线程:

		//实现Callable接口并把它包装成Runnable接口实现类
        FutureTask futureTask = new FutureTask(new Callable<String>() {
            @Override
            public String call() throws Exception {
                return "run with CallBack and Result is callBackResult";
            }
        });
        //包装成线程并启动
        Thread callBalcThread = new Thread(futureTask) ;
        callBalcThread.start();
        //使用包装类获取Callable执行call()后的返回值 【阻塞】
        System.out.println(futureTask.get());
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值