线程的概念
线程是程序执行的最小单位,也是操作系统调度和分派CPU的最小单元,是进程中的一个实体,是进程中的实际运作单位。可以在一个进程中启动多个线程来完成不同的任务,这些线程共享该进程拥有的资源。
线程进程区别
进程是程序的实体,也是线程的容器,一个进程可以包含多个线程,进程是资源分配的基本单位。
线程属于某个进程,并跟进程中的其他线程共享该进程的资源。同一进程中的线程可以共享相同的内存地址空间,同时每个线程还拥有自己单独的栈内存。
在Java中如何实现线程
在Java语言层面上只有两种实现线程的方式。继承java.lang.Thread类和实现java.lang.Runnable接口。java.lang.Thread代表了一个线程,而java.lang.Runnable代表了线程中运行的任务。
我们应该是使用Runnable还是Thread?
Java不支持多继承,但允许实现多个接口。所以如果需要继承其他类,实现Runnable接口是好了。
题外话,Thread表示一个线程,每个任务都创建一个线程肯定是不妥的,正确的做法应该是初始化一定量的Thread对象,实现Runnable接口创建表示任务的类,并把这些任务对给Thread线程执行。
Thread类的start()和run()方法的区别
start()方法会创建新的线程并启动该线程,所以该方法会调用其他native方法,而run()方法就是正常的Java方法调用,即在原来的线程中执行java代码。
Java中Runnable和Callable的区别
Runnable和Callable都代表要线

Java基础学习总结(104)——多线程、并发、工具类相关的面试题相关推荐

  1. java多线程aqs实现工具类_Java并发多线程 - 并发工具类JUC

    (adsbygoogle = window.adsbygoogle || []).push({}); 安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 ...

  2. Java基础学习——环境配置及开发工具-IDEA的安装

    学习目标: 了解什么是计算机语言 了解什么是java的跨平台原理 掌握如何搭建开发和运行环境 必须掌握HelloWorld程序的开发 必须记住Java的基本语法 了解注释符号有哪些 了解什么是关键字和 ...

  3. Java基础学习总结(7)——Object类

    2019独角兽企业重金招聘Python工程师标准>>> 一.Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父 ...

  4. Java基础学习总结(144)——String类为什么要被定义为不可变类

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 问题:String类为什么要被定义为不可变类 String类被定义为final的主要 ...

  5. JAVA基础学习之路(三)类定义及构造方法

    类的定义及使用 一,类的定义 class Book {//定义一个类int price;//定义一个属性int num;public static int getMonney(int price, i ...

  6. Java基础学习总结(116)——Map使用相关问题总结

    1.Map转为一个List 在Java中Map接口提供了三个集合视图:key set,value set,和key-value set;它们可以使用构造函数或addAll()方法转化为一个List,例 ...

  7. 多线程-并发工具类之CyclicBarrier详解

    文章目录 简介 例子 实现原理 小结 简介 从字面意思理解,CyclicBarrier是回环屏障的意思,它可以让一组线程全部达到一个状态后再全部同时执行.这里之所以叫作回环是因为当所有等待线程执行完毕 ...

  8. 【java基础知识】连接mysql的工具类编写

    转载地址:https://blog.csdn.net/qq_37163479/article/details/78941436 ------------------------------------ ...

  9. 并发编程 | 并发工具类 - 序章

    总览 本章节的思维导图如下所示: 引言 在并发编程的世界中,我们面临着各种复杂的问题,例如线程间的同步.数据一致性保证.任务的分配与执行等.幸运的是,Java提供了一套强大的并发工具类,帮助我们更好地 ...

最新文章

  1. 由点到面 旅游让丝路明珠敦煌更加智慧
  2. sql数据库相关语句
  3. 测试socket udp 单次传输数据上限(sendto()函数data不能超过65507字节。udp头占8字节,ip头占20字节,加起来正好65535字节)
  4. 2.1.1 进位计数制及其相互转换(二进制转八进制和十六进制、十进制小数转二进制数)
  5. python项目之当当网
  6. mfc函数调用堆栈溢出_01 JavaScript 调用堆栈
  7. mysql 自定义排序函数_MySQL自定义排序函数FIELD()
  8. commons-fileupload 上传图片路径到mysql_上传图片到服务器并将图片路径保存到数据库...
  9. Linux Kernel代码艺术——数组初始化
  10. JS包管理器Yarn 与 npm比较
  11. iperf3使用方法说明
  12. 计算机桌面不显示时间,win7电脑不显示时间怎么办|win7电脑不显示时间的恢复方法...
  13. 期货开户公司想恶意滑点是做不到的
  14. ArcGIS API for JavaScript开发之必学渲染方式及渲染符号概念(0)
  15. MHL技术剖析,比HDMI更强【转】
  16. FileDownloader 库推荐
  17. 拾方易公众号运营成本低么?
  18. 【分享】PPT--你不知道的使用技巧
  19. 云计算基础设施总体架构介绍
  20. 120年奥运会数据分析

热门文章

  1. 力扣26,删除重复项(JavaScript)
  2. java trim all,[JAVA中各种去除空格][java string.trim()][str.replaceAll去空格]
  3. html列表按时间排序代码_把 Linux 上的文件列表和排序玩出花来 | Linux 中国
  4. php 取某个时间的时间戳,PHP 获取指定年月日的开始和结束时间戳
  5. 绝地仙王986服务器维护到几点,绝世仙王————【维护】1月12日更新维护公告...
  6. c语言用指针删除链表free,leetcode剑指 Offer 18(删除链表的节点)--C语言实现
  7. pythonc代码_Python实现C代码统计工具(一)
  8. mysql三高讲解(三)3.1 如何提高where效率
  9. linux下的gdb调试
  10. python的魔法方法