Java之多线程

作者: 最深的爱最沉默_a447 | 来源:发表于2018-05-29 21:13 被阅读42次

这个东西不用说,必学,必用,面试必问

一.概念

先来介绍一下进程线程的区别,进程就是一个电脑上运行的各个应用程序.而线程就是进程里面的各种功能.如QQ是个进程,而QQ里面你能打字,查看信息,语音,等等就是它的一个个线程了.所以线程组成进程.一个进程至少有一个线程.CPU的执行也是以线程为基本单位的.也就是执行的是一个个线程.

单核一次只能执行一个线程啊,线程转换的太快,让你以为一次执行多个.有时间片这个概念,当然这都是基础,概念,百度看看就都懂了.

了解一下并行和并发

所以程序员追求高并发不追求高并行.

多线程的优势,想都不用想,可以支持高并发么,可以支持多人访问不卡么,各种快速完成一个任务啦.比如合理利用多核系统,不然永远单线程用一个核多不好,多浪费

,

二.具体

Java使用多线程有两点

1.继承threan类和实现Runnable接口,其实实现Runnable接口本质还是继承thread类.

实现Runnable接口的实现方法也和上面一样.在实现方法上没什么区别.但两者在其他方面还是有很大的区别的.

2.thread和Runnable的区别(推荐使用Runnable接口):

简单说接口可以继承多个,类只能一个,复杂点就是下面.Runnable可以多个线程处理一个事物.而thread是一个线程处理一个.但也不一定,只是thread实现比较复杂.

上面说的基本都是一样的

三.来看看里面的方法和区别

1.先来看看为了解决线程冲突,即保证线程执行的原子性.使用的解决办法.

同步代码块和同步方法差不多,都是使用了Synchronized关键字,他能保证原子性.但使用它后效率不是很高,所以使用lock锁更好一点.

(Lock)锁机制:使用这个会比Synchronized好一点.

2.线程的执行流程,非常非常重要.

3.线程中的sleep,wait啊等等方法

这些方法在上面那个线程流程图中有了很详细很立体的介绍了,先把上面那个图看懂了,很重要.下面是详细介绍.

这些就是基本方法了.

四.来看看死锁,这个也经常问.

死锁就是两个线程发生了互相调用.都不放开导致的

死锁只能避免,预防

五.线程池

一个线程不停的启用关闭太浪费时间,还给服务器造成了压力,所以出现了线程池,在一个线程用完时先不关闭,放在线程池中.等待下次再用

在大公司面试时,会问你会不会理解线程池的源码.

上面几乎就包含了基础面试问的所有东西.几乎是必问.再看完后推荐再看看这个,人家说的很系统,

https://www.cnblogs.com/GarfieldEr007/p/5746362.html

在难一点看看线程池的实现

https://blog.csdn.net/evankaka/article/details/51489322

在还有线程技术的实现内幕,及原理

https://blog.csdn.net/column/details/javahhighconcurrence.html

都能看完你就无敌了.期待补充哈.

相关文章

  • 2018-08-15

    java学习第一天之多线程 包:java.lang : 类:class...

  • 【java基础】线程

    java基础 线程 参考详细:Java之多线程 一、创建线程 创建线程常见有两种方式,另外有两种新增方式 1.Th...

  • Java之多线程

    这个东西不用说,必学,必用,面试必问 一.概念 先来介绍一下进程线程的区别,进程就是一个电脑上运行的各个应用程序....

  • Java之多线程

    Thread(耦合,不推荐) Runnable(解耦,推荐) Executors ExecutorService ...

  • Java之多线程

    今天考虑有关线程的代码问题,如何写多线程,什么的东西应该定义为线程?等等等。。 随笔记下来,防止后面忘记了。。什么...

  • Java之多线程

    Java多线程概念 进程(Process):  进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态...

  • java之多线程

    1、 什么是进程? 一个进程代表一个应用程序 2、多进程有什么作用? 单进程计算机只能做一件事情。 多进程不是提高...

  • JAVA之多线程

    ▷ 进程、线程和多线程 进程: 定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统...

  • iOS开发之多线程(5)—— Pthreads

    文集 iOS开发之多线程(1)—— 概述iOS开发之多线程(2)—— ThreadiOS开发之多线程(3)—— G...

  • iOS开发之多线程(4)—— Operation

    文集 iOS开发之多线程(1)—— 概述iOS开发之多线程(2)—— ThreadiOS开发之多线程(3)—— G...

网友评论

    本文标题:Java之多线程

    本文链接:https://www.haomeiwen.com/subject/vuqajftx.html