承Thread类

4.线程的高度是指在单个CPU上以某种顺序运行多个线程

5.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序是不确定的

6.Java中的对象锁是一种独占的排他锁

7.程序中可能出现一种情况:多个纯种互相等待对方持有的锁,而在得到对方的锁之前都不会释放自己的锁,这就是死锁.

8. notyfyAll() 方法将对象wait pool中的所有纯种都移到lock pool中。

9.在一个线程中,建议使用标志,而不使用stop() 方法终止另一个线程。

10.Java线程组把一组线程看做一个对象进行统一处理。

11.进程是一个内核级的实体,而线程是一个用户级的实体

12.在Java线程模型中的数据和代码构成了线程体。

13.线程的优先级是在Thread类的常数MIN_PRIORITY 和MAX_PRIORITY

之间的一个值

14.Java的线程高度策略是基于优先级的抢占式调度。

15.处于新建状态的线程可以使用的控制方法是start() 和stop() 。

16.一个进程可以包含多个线程

17.多任务操作系统运行多个进程来并发地执行多个任务

18.线程是由表示程序运行状态的寄存器组成的

19.多线程允许单个程序创建多个并行执行的线程来完成多个子任务

20.Thread类中表示最高优先级的常量是getPriority() ,而表示最低优先级的常量是setPriority(0 .

三.简答题

1. 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

答:主要相同点: Lock能完成synchronized所实现的所有功能

主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。

2.理解几个概念对象锁、sleep、wait、notify、notifyAll

对象锁:每个对象都有对象锁,当某个线程进入用synchronized定义方法时,就获得了当前类对象(方法所属的类的对象)的锁,其他线程就不能再获得该锁,直到线程释放该锁。一个类对象有一个对象锁,多个同步方法公用一个对象锁。

sleep:是当前线程处于休眠状态,将对cpu的控制权交给其他线程,但不释放当前对象的锁,其他线程可以获得cpu,但不能进入当前线程控制的对象锁。

wait:与sleep的区别是,它会释放对象锁,其他线程可以进入该同步块。

notify:进入当前同步块的线程调用wait方法变成休眠状态的线程,notify将该线程变成等待状态。

java多线程中出现的异常分别有哪些_java多线程试题相关推荐

  1. 在java语言中 ()方法是不可以继承的_Java 语言中,构造方法是不可以继承的。( )_学小易找答案...

    [简答题]需求分析完整话术 [简答题] [单选题]适用于场地面积有限,集装箱吞吐量较大的水陆联运码头的起重机系统是( )系统 [单选题]利用叉车或半挂车.汽车承载货物,连同车辆一起开上开下船,到达目的 ...

  2. 浅析Java语言中两种异常的差别

    Java提供了两类主要的异常:runtime exception和checked exception.所有的checked exception是从java.lang.Exception类衍生出来的,而 ...

  3. Java 开发中常见的异常有哪些?

    1.空指针异常(NullPointException):当对象不存在,却又去调用对象的属性或方法时,就会出现该异常 2.数组越界异常(ArrayIndexOutOfBoundsException):当 ...

  4. java语言中 负责并发编程的机制是_Java并发编程艺术-并发机制的底层原理实现...

    Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量. volatile借助Java内存模型保证所有线程能够看到最新的值.(内存可见性) ...

  5. java api中最常用的五个包_java 5 个常用的api包

    一.java.lang包下的API Java常用基础包,在开发中会自动导入到代码环境中,不需要import. 1.基本数据类型/包装类 (1)基本数据类型:byte.short.int.long.fl ...

  6. Java语言中提供了三个日期类_Java语言学习(5)-Java中基础封装类(日期、时间类)...

    日期和时间封装类 1. Data类 Java日期和时间采用Data类.Data类在java.util包中. Data类构造函数: 1)       Data()   采用当前时间初始化对象: 2)   ...

  7. java怎么求两组整数的或集_Java面试题(判断集合中是否有两个数的和等于某个给定整数)...

    首先是参考思路: 解法1 解题步骤: 1.        对数组S进行归并排序. 2.        构造数组S'={z : z=x-y, y∈S},并排序.由于S已经有序,构造与排序可一并完成. 3 ...

  8. java 接口中的成员只有静态常量和_Java中抽象类和接口的具体区别是什么?

    谢邀,直接回答. 接口在面向对象编程中占着很重要的地位,它是对于一种事物行为的抽象提取,内部只需要持有接口的引用,外部可以根据具体事物做不同的扩展,而不修改内部的引用逻辑,它的主要作用是在框架中实现不 ...

  9. java开发中推荐的防御sql注入方法_Java防止SQL注入

    SQL 注入简介: SQL注入是最常见的攻击方式之一,它不是利用操作系统或其它系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了SQL的空子,下面我们先来看下什么是SQL注入: 比如在 ...

最新文章

  1. 参加UI培训有发展吗?
  2. PCA、碎石图、PCA+正确的维度个数、增量PCA(IncrementalPCA)、随机PCA(Randomized PCA)、KernelPCA
  3. EventBus初解
  4. 《深入理解Java虚拟机》笔记5——类加载机制与字节码执行引擎
  5. Mybatis:基于注解形式,传入List,返回List实体
  6. vue-cli 项目配置路径别名
  7. c# 类的基本知识,未完,待续
  8. Shell 简单的java微服务jar包 -- 部署脚本
  9. 面试官:聊一下你对MySQL索引的理解?
  10. 中国IT人,你们是否从没想过开发一款伟大的产品?
  11. Git发生SSL certificate problem: certificate ha错误的解决方法
  12. linux版锐捷认证客户端,Linux/UNIX锐捷802.1x网络的认证客户端:RuijieClient 0.7发布
  13. 动手实现图像双线性插值——实现图像resize
  14. 理论计算机科学 维基百科,多元智能理论(维基百科的比较全面的介绍).pdf
  15. txt 文本文档中空格替换
  16. 第二章 从优化业务流程谈信息集成的必要性
  17. 用ssm进行微信开发,实现微信登录验证功能
  18. 2021哈工大深入理解计算机系统Lab5(linklab)
  19. 台式计算机开机没反应,台式机开机没反应怎么回事
  20. OpenCL: 从零开始学习OpenCL开发

热门文章

  1. rpm命令包安装mysql_CentOS7使用rpm包安装mysql 5.7.18
  2. python基础学习_转行零基础该如何学习python?很庆幸,三年前的我选对了
  3. C++PrimerPlus学习——第十四章编程练习
  4. flex java oracle_Flex使用Blazeds与Java交互及自定义对象转换详解-DATAGRID读取ORACLE数据...
  5. sklearn保存svm分类模型_【菜菜的sklearn】07 支持向量机(上)
  6. 石油大学c语言考试答案,中石油华东2012春《C语言》在线答案
  7. Spring的ApplicationEvent的使用
  8. 在jsp中对mysql数据库分页的方法
  9. mysql首次_mysql首次登陆任务
  10. springboot系列——redisTemplate和stringRedisTemplate对比、redisTemplate几种序列化方式比较