问答题

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习题 第八章 线程的更多相关文章

  1. JavaSE习题 第九章 输入输出流

    问答题 1.如果准备读取一个文件的内容,应该使用FileInputStream还是FileOutputStream? FileInputStream 2.FileInputStream流的read() ...

  2. javaSE习题 第一章 JAVA语言概述

    转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...

  3. [javaSE] 并发编程(线程间通信)

    新建一个资源类Resource 定义成员变量String name 定义成员变量int age 新建一个输入类Input,实现Runnable接口 定义一个构造方法Input(),传入参数:Resou ...

  4. java并发编程实战:第八章----线程池的使用

    一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...

  5. [javaSE] 多线程(守护线程)

    我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...

  6. 《Java并发编程实战》第八章 线程池的使用 读书笔记

    一.在任务与运行策略之间的隐性解耦 有些类型的任务须要明白地指定运行策略,包含: . 依赖性任务.依赖关系对运行策略造成约束.须要注意活跃性问题. 要求线程池足够大,确保任务都能放入. . 使用线程封 ...

  7. JavaSE习题 第七章 常用实用类

    问答题 1.怎样实例化一个Calendar对象? Calendar ca=Calendar.getInstance(); 2.Calendar对象调用set(1949,9,1)设置的年月日分别是多少? ...

  8. JavaSE习题 第六章 字符串和正则表达式

    Make efforts eveyday 问答题 1.对于字符串 String s1=new String("ok"); String s2=new String("ok ...

  9. JavaSE习题 继承接口和泛型

    问答题: 1.子类在什么情况下可以继承父类友好成员? 答:在同一个包内 2.子类通过怎样的方法可以隐藏继承的成员变量? 答:声明一个与父类相同变量名的成员变量 3.子类重写继承的方法原则是什么? 答: ...

随机推荐

  1. NFS服务端与客户端配置

    #首先确认系统中是否安装了对于的软件 rpm -qa|grep -i nfs #在有网络的情况下使用YUM安装NFS.rpcbind软件包 yum install lrzsz nmap tree do ...

  2. Centos搭建Seafile个人网盘

    1.安装依赖环境 yum install python python-setuptools python-imaging python-ldap python-memcached MySQL-pyth ...

  3. echarts报错Can't get dom width or height

    echarts图无法显示 一直报错Can't get dom width or height 原因:显示echarts图的div要设置宽高 报错前: <div class="left_ ...

  4. Access is denied (user is anonymous); redirecting to authentication entry point

    Access is denied (user is anonymous); redirecting to authentication entry point org.springframework. ...

  5. PHP实现的自定义图像居中裁剪函数示例

    图像居中裁减的大致思路: 1.首先将图像进行缩放,使得缩放后的图像能够恰好覆盖裁减区域.(imagecopyresampled ― 重采样拷贝部分图像并调整大小) 2.将缩放后的图像放置在裁减区域中间 ...

  6. 利用JQuery Mobile开发web app

    什么是web app web app 是基于web的应用程序,是针对移动设备优化后的web站点,它具有 开发成本低——采用web开发技术,不需要考虑跨平台以及底层适配问题: 升级简单——不需要通知用户 ...

  7. 【4Opencv】如何识别出轮廓准确的长和宽

    问题来源: 实际项目中,需要给出识别轮廓的长度和宽度. 初步分析: 轮廓分析的例程为: int main( int argc, char** argv ){    //read the image  ...

  8. Git pull的时候遇到问题

    转载:https://www.jianshu.com/p/7b1c58e0a9ef 使用git从远程pull代码时报错: error: The following untracked working ...

  9. python ---24 正则表达式 re模块

    一.正则表达式 1.字符组 ① [abc] 匹配a或b或c ②  [a-z] 匹配a到z之间的所有字⺟ [0-9]匹配所有阿拉伯数字 2.元字符 3.量词 4.重要搭配 ①  .*? ②  .*?x  ...

  10. P2761 软件补丁问题

    P2761 软件补丁问题 思路 貌似不用网络流,直接状态压缩 用spfa跑最短路,直接判断是否能过 位运算太渣了,WA了好几发 代码 #include <bits/stdc++.h> us ...