ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

线程的创建方式(一)

2022-02-28 22:00:45  阅读:101  来源: 互联网

标签:ThreadStudy Thread 方式 int 创建 void 线程 public


    并发编程的知识体系是每个测试开发工程师都必须具备的知识体系。这是因为在测试开发的工作体系中,我们

需要去编写性能测试工具以及在服务端稳定性的体系保障下,需要使用并发编程的知识来设计我们的测试用例的场

景。在我们的智能手机以及电脑中,运行的每个应用程序我们都可以称为程序,但是在计算机的科学中我们可以把

程序=数据结构+算法,当然这部分会在后续的文章体系中会详细的介绍到。但是可以说智能手机以及电脑上运行的

程序我们都可以称呼为程序。进程是计算机运行的最小单位模式,而一般性的一个程序运行的时候都会有一个进程,

而线程是比进程更细小的一部分,可以说线程是利用进程所拥有的资源来独立的完成一项计算任务。现代的软件基本

可以说都是多线程的模式,那么多线程它是有什么优势了?它的优势具体可以汇总为如下:

  • 能够快速的得到用户的响应操作,其实这在应用层的协议角度能够很好的来理解
  • 软件在同一个时刻可以干很多的事,比如微信可以同时进行语音,视频,发文字等信息
  • 更加合理的使用计算机的系统资源,这些资源主要是CPU的资源和内存的资源
  • 任何能够很好的拆分为多个小的任务
  • 提高系统的吞吐量以及软件执行的效率

下面详细的阐述在Java的技术栈中三种创建线程的方式,来学习线程的具体应用。

一、继承Thread类创建线程

        很多时候我们更多使用的是通过继承Thread的类来创建线程,下面具体演示下这部分的应用,具体如下:

package com.example.blog;

public class ThreadStudy extends  Thread
{
	public void add(int a,int b)
	{
		System.out.println("两个数相加之和:"+(a+b));
	}

	@Override
	public void run()
	{
		add(2,3);
	}

	public static void main(String[] args)
	{
		ThreadStudy threadStudy=new ThreadStudy();
		threadStudy.start();
	}
}

二、Runnable接口创建线程

        下面我们通过继承Runnable接口的方式来实现这部分,那么具体的源码部分具体如下所示:

package com.example.blog;

public class ThreadStudy implements   Runnable
{
	public void add(int a,int b)
	{
		System.out.println("两个数相加之和:"+(a+b));
	}

	@Override
	public void run()
	{
		add(2,3);
	}

	public static void main(String[] args)
	{
		ThreadStudy threadStudy=new ThreadStudy();
		Thread thread=new Thread(threadStudy);
		thread.start();
	}
}

三、Callable接口创建线程

        除了上述两种方式外,还有第三种的方式就是接口Callable,这个接口的方式是能够返回方法的表达式

具体的值,还是以上述的代码为案例,改造后的代码方式为:

package com.example.blog;

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class ThreadStudy implements Callable<Integer>
{
	public int add(int a, int b)
	{
		return a+b;
	}


	@Override
	public Integer call() throws Exception
	{
		return add(2,3);
	}

	public static void main(String[] args)
	{
		ThreadStudy threadStudy=new ThreadStudy();
		FutureTask<Integer> futureTask=new FutureTask<Integer>(threadStudy);

		Thread objThread=new Thread(futureTask);
		objThread.start();
		try{
			System.out.println("返回值的信息是:"+futureTask.get());
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

     通过如上的三种方式,可以看到其实第三种方式虽然比较麻烦点,但是我个人还是比较喜欢第三种的模式,

主要是因为能够获取到表达式的返回值的信息,拿到表达式的返回值的信息后,就可以再延伸的做其他的事宜。

 

标签:ThreadStudy,Thread,方式,int,创建,void,线程,public
来源: https://www.cnblogs.com/weke/p/15947804.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有