多线程基础(一)

线程基础,线程之间的共享和协作

时间片轮询?

在计算机基础知识里有cpu时间轮转机制 也叫作RR调度,即给每一个进程分配一个时间段,这个时间段为一个进程的生命,在时间段结束后,操作系统就把进程把杀死了。时间片每一次切换都会浪费较多的时间,故应该少切换,减少对程序的影响。

进程与线程?

在一个进程内部可以有多个线程,多个线程共享一个进程的资源,而进程与进程之间是相互独立的。线程自己不拥有系统资源,必须依附于某一个进程中。故线程创建的时候,都需要创建一个进程。

并行与并发的区别?

并行:同一时刻可以处理事情的能力。

并发:单位时间内可以处理事情的能力。

简而言之就是并发是多个事件在同一时间段执行,而并行是多个事件在同一时间点执行。

使用并发编程可以让代码更加模块化,异步化的处理。

高并发环境下操作同一个线程带来的问题?

共享资源,多线程之间控制不好冲突,死锁问题;太多的线程就有可能搞垮机器。

怎么创建一个新的线程?

有三种 继承Thread类,实现runnable接口,实现callable接口

前面两种就不必介绍了,第三种callalbe接口的是实现代码如下:

public class NewThread implements Callable<String>{
	@Override
	public String call() throws Exception {
		// TODO Auto-generated method stub
		return "hello wolrd!!";
	}
	public static void main(String []args) throws InterruptedException, ExecutionException
	{
		NewThread nt=new NewThread();
		//需要包装为runnable来放入Thread类
		FutureTask<String> futureTask=new FutureTask<>(nt);//由于futureTask实现了runnable接口
		//所以可以将他递交给线程来运行
		Thread t=new Thread(futureTask);
		t.start();
		futureTask.get();//拿到callable的返回值
		System.out.println(futureTask.get());
	}
	

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值