JavaSE习题 第八章 线程
问答题
1.线程和进程是什么关系?
进程是程序的一次动态执行,对应了从代码加载,执行至执行完毕的一个完整的过程
线程是比进程更小的执行单位,一个进程在其执行过程中可以产生多个线程,形成多条执行线索
2.线程有几种状态?
4种,新建,运行,中断,死亡
3.引起线程中断的常见原因是什么?
1.执行了sleep
2.执行了wait
3.cpu资源切换给其他线程
4.进入阻塞状态
4.一个线程执行完run方法后进行了什么状态?该线程还能调用start方法吗?
死亡状态,不能
5.线程在什么状态,调用isAlive返回false
死亡状态
6.线程调用interrupt作用是什么?
吵醒休眠的线程
7.将第8-11中的synchronized去掉,重新编译,观察运行结果
会出现重复
8.wait(),notify(),notifyAll()的作用
使线程进入挂起状态(sleep的时间不确定)
唤醒一个挂起状态的线程
唤醒所有挂起状态的线程
9.TicketSeller中的循环条件while(fiveNumber<1)换成if(fiveNumber<1)可行嘛
不可行,while会循环,if只能判断1次,可能会进行连续等待状态
10.TicketSeller类中出现的 wait改成sleep(2000)重新编译,观察运行结果
11.什么叫守护线程?
thread.setDaemon(true),则该线程为非守护线程
守护线程是在其他线程都运行完毕后立即中断,那么,该线程为守护线程(守护线程不稳定)
作业题
1.上机调试8-1观察结果是否相同
package cn.littlepage.game;
public class Test2 {
public static void main(String[] args) {
WriteWordThread zhang, wang;
zhang = new WriteWordThread("张");
wang = new WriteWordThread("王");
zhang.start();
for (int i = ; i <= ; i++) {
System.out.println("我是主线程的语句");
}
wang.start();
}
}
class WriteWordThread extends Thread {
WriteWordThread(String s) {
setName(s);
}
public void run() {
for (int i = ; i <= ; i++) {
System.out.println("我是一个线程,名字是" + getName());
}
}
}
不相同
2.上机调试8-2,编写3个线程,分别在命令行窗口输出信息//和第一题差不多
3.模仿8-4,编写3个线程,使他们有更多的共享单元//使用implements runnable和第一题差不多,共享单元是new Thread(传进同一个Thread的子类)
4.模仿8-12,编写5个人同时买票,并规定卖票规则和排队顺序
JavaSE习题 第八章 线程的更多相关文章
- JavaSE习题 第九章 输入输出流
问答题 1.如果准备读取一个文件的内容,应该使用FileInputStream还是FileOutputStream? FileInputStream 2.FileInputStream流的read() ...
- javaSE习题 第一章 JAVA语言概述
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...
- [javaSE] 并发编程(线程间通信)
新建一个资源类Resource 定义成员变量String name 定义成员变量int age 新建一个输入类Input,实现Runnable接口 定义一个构造方法Input(),传入参数:Resou ...
- java并发编程实战:第八章----线程池的使用
一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...
- [javaSE] 多线程(守护线程)
我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...
- 《Java并发编程实战》第八章 线程池的使用 读书笔记
一.在任务与运行策略之间的隐性解耦 有些类型的任务须要明白地指定运行策略,包含: . 依赖性任务.依赖关系对运行策略造成约束.须要注意活跃性问题. 要求线程池足够大,确保任务都能放入. . 使用线程封 ...
- JavaSE习题 第七章 常用实用类
问答题 1.怎样实例化一个Calendar对象? Calendar ca=Calendar.getInstance(); 2.Calendar对象调用set(1949,9,1)设置的年月日分别是多少? ...
- JavaSE习题 第六章 字符串和正则表达式
Make efforts eveyday 问答题 1.对于字符串 String s1=new String("ok"); String s2=new String("ok ...
- JavaSE习题 继承接口和泛型
问答题: 1.子类在什么情况下可以继承父类友好成员? 答:在同一个包内 2.子类通过怎样的方法可以隐藏继承的成员变量? 答:声明一个与父类相同变量名的成员变量 3.子类重写继承的方法原则是什么? 答: ...
随机推荐
- OLED屏幕那些次像素有趣的排列方式
http://www.dzsc.com/data/2016-6-2/109856.html 我们今天的重点内容为倒数第二列内容的上半部分,也就是RGB排列和Pentile排列.在介绍OLED屏幕时候我 ...
- springMVC之一(页面<--->控制器 互相传值,转发和重定向)
#页面--->控制器1.request:不建议使用2.使用属性传值(建议使用)@RequestParam("name") String username3.使用Bean对象传 ...
- css盒子模型、边框border、外边距margin、填充padding、轮廓outline
盒子模型:盒子默认的宽度为容器的宽度,也可以自省设定宽度,高度根据内容适应,也可以自行设定高度.min-height设定最小高度 一个盒子包括外边距.边框.内边距和实际内容 Margin(外边距):清 ...
- 使用nc命令传输文件和文件夹
相比较常用的scp,nc命令传文件不需要建立ssh连接和输入密码,方便快捷:尤其是在只能用key登录的机器上: 传文件: 先在目标机器执行命令准备好接收(1221为任意可用端口) nc -l 1221 ...
- Idea 破解教程 (2018.11-29最新版)
一.下载安装idea,这里不做赘述.官网-https://www.jetbrains.com/idea/ 二.安装完idea后,需要激活使用.这里需要先下载个工具包 ,下载网址http://idea. ...
- maven的使用记录
maven的使用记录 使用的版本为3.6.0. maven配置部署项目 在cmd命令行中切换到Maven项目的根目录,比如:D:/xxxwork/java/maven-test,然后执行命令:$ mv ...
- 【python36--对象】
1.对象=属性+方法 2.实例化对象 #类名称首字母大写 class Turle: #属性 color = 'green' weight = 10 legs = 4 shell = True mout ...
- python --- 18 类与类之间的关系, 特殊成员
类与类之间的关系 一.依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作 随时可以更换另外一个东西来完成此操作 此时的关系是最轻的. 二.关联关系(组合关系,聚合关系) 1.一对 ...
- 强大的Django后台管理
Django 后台 django的后台我们只要加少些代码,就可以实现强大的功能.与后台相关文件:每个app中的 admin.py 文件与后台相关 下面示例是做一个后台添加博客文章的例子: 新建一个 名 ...
- Docker 使用Docker-Compose编排容器
简介: Docker Compose是一个用来定义和运行复杂应用的Docker工具.一个使用Docker容器的应用,通常由多个容器组成.使用Docker Compose不再需要使用shell脚本来启动 ...