Java网络编程期末复习——第四章 多线程

java期末试题及答案 java期末考试试题及答案 阅读详情

(一)基本概念

进程和线程的概念

进程:一个执行中的程序,每一个进程都有自己独立的一块内存空间、一组系统资源。
线程:一个执行的程序内部,可以包含多个顺序执行流,每个执行流称为一个线程。

线程与进程的关系

进程:享有独立的代码和数据空间,切换开销大。
线程:同一类线程共享代码和数据空间,线程切换的开销小。
多进程:在操作系统中,能同时运行多个任务程序。
多线程:在同一应用程序中,有多个顺序流同时执行。

并发和并行的区别

并行:多个CPU处理多个进程
并发:一个CPU,坐几个进程(单核CPU,假的多线程)

多线程的作用

提高用户体验,使程序的响应速度更快
适合于开发服务程序(如聊天服务等)
适合于开发有多种交互接口的程序(如聊天程序的客户端,网络下载工具)
减轻编写交互频繁、涉及面多的程序的困难(如监听网络端口)
程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口以及其他外设)
可以分别设置各个任务的优先级以优化性能。

何时使用多线程

程序需要同时执行两个或多个任务
程序需要实现一些需要等待的任务时:用户输入、文件读写操作、网络操作、搜索等
需要一些后台运动的程序

(二)Java 创建线程的方法 及 使用

通过继承Thread类来创建

定义Thread类的子类
重写该类的run方法
重写该类的start方法(可选)
运行方法 : new 出新类对象-> start()

实现Runnable接口来创建

定义Runnable接口的实现类,
仅需实现接口的run方法
运行方法:作为 new Thread的参数传入

(三)线程的生命周期

生命周期的概念是首次引入,以后学web还会提到

线程是动态的具有一定的生命周期,分别经历从创建、执行、阻塞直到消亡的过程。

线程的优先级

Java将线程的优先级分为10个等级,分别用1-10之间的数字表示。数字越大表明线程的级别越高。
Thread类的三个静态常量:
MAX_PRIORITY 10
MIN_PRIORITY 1
NORM_PRIORITY 5 (默认)
setPriority / getPripority
守护线程 (Daemon): Java中特殊的优先级最低的线程,主要用于为系统中的其它对象和线程提供服务。
setDaemon

(四)线程同步

多个线程访问一个数据对象时,可能对数据造成的破坏。
所以引出线程同步,来解决线程安全问题

解决方案:
互斥锁:保证在每一个时刻,只能有一个线程拥有该互斥锁,其它线程如果需要获得该互斥锁,必须等待当前拥有该锁的线程将其释放
每个类一把锁,每个对象一把锁,只有获取锁的线程可以进入同步区域。
关键字synchronized
(1)synchronized可以用于方法上
(2)synchronized修饰程序块

线程间的合作

死锁

线程间竞争共享资源,互不相让,永远进入一种等待状态。

解决方法:

避免嵌套封锁
只对有请求的进行封锁
wait () 和notify()/notifyAll()方法

线程池的优点

减少创建和销毁线程的开销
避免创建太多的线程导致系统崩溃
简化编程模型

四种可用的线程池:

newSingleThreadExecutor
newFixedThreadPool
newCachedThreadPool
newScheduledThreadPool

(五)线程的通信

Java考试复习 java考试复习 1) 判断题、单选题、填空题看网上测试; 注意!!!(单选题答案里面的粗黑的有分号是代表同时满足;填空题答案里面的粗黑的有分号是代表其中一个就满足) 第1章 (做错的题目) 判断题 java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×) 解释: PPT解释(Java有一个系统级的线程,对内存的使用进行跟踪,该线程可以在系统空闲时对不用的内存进行回收,使程序员从繁忙的内存管理中解放出来。) JAVA虽然有垃圾回收机制,但是不能在指定的时间释放内存对象,只能在程序运 阅读详情

相关推荐

Java程序设计基础(第五版)期末总复习

一个程序中可以有多个类,但只能有一个类是主类。 在 Java 应用程序中,这个主类是指包含 main()方法的类。 在 Java 小程序中,这个主类是一个继承自系统类 JApplet 或 Applet 的子类。 应用程序的主类不一定要求是 public 类,但小程序的主类要求必须是 public 类。 主类是 Java 程序执行的入口点。 简单说应用程序是从主线程启动 (也就是 main () 方法)。 applet 小程序没有 main () 方法,主要是嵌在浏览器页面上。...

zhangxia_的博客 1万+

java多线程七大编程题(十分受用)

java多线程编程练习题

qq_44697268的博客 3430

Java期末考试复习资料:试卷与答案解析

Java期末考试试卷通常由多个部分组成,旨在全面评估学生对Java编程语言的掌握程度和应用能力。试卷类型通常包括选择题、填空题、判断题、简答题以及编程题等。题型多样,覆盖了对基础知识的理解、对细节的关注、以及实际编程解决问题的能力。选择题和填空题常用于检验学生对Java基础知识的记忆与理解,如语法细节、关键字的用途等。判断题则更多考验学生对知识点的辨析能力,例如对概念正确性的判断。简答题和论述题则是对学生理论功底和逻辑思维能力的测试,通常涉及对Java核心概念、设计原则、技术规范等的深入解释。

weixin_42515392的博客 819

Java8新特性(三) Optional与NullPointerException

导航 引例 Optional 容器类 有值状态与无值状态 三种方法创建Optional对象 Optional操作详解 取值 isPresent和ifPresent filter、map、flatMap 注意点 引例 说起NullPointerException你肯定不会陌生,因为它大概是我们日常开发中碰到最多的问题。为了避免空指针异常的出现,我们常常需要做很多的逻辑判断。下...

戏流年的博客 2083

java网络编程考试题库

java网络编程考试题目,内含有Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作),有答案

java网络编程复习资料

网络编程复习资料。 ppt。老师总结的。 需呀偶的同学可以借鉴借鉴一下。

JAVA网络编程期末复习资料 第一章

JAVA网络编程期末复习资料 第一章第一章OSI七层模型、TCP/IP四层模型多重协议的识别问题网间进程交互模式不同通信服务要求网间进程通信方式理解进程与线程概念进程线程多线程传输层在网络通信中的作用端口的概念网络应用进程标识网间进程通信标识客户/服务器交互模式服务器工作模式客户机工作模式容易混淆的术语客户机与服务器的通信过程网络协议与C/S模式的关系服务器如何同时为多个客户服务客户机/服务器交互阻塞与非阻塞通信方式JAVA编程注意事项 第一章 OSI七层模型、TCP/IP四层模型 多重协议的识别问题

mcyuuji的博客 1491

Java网络编程socket多线程下载带界面

Java网络编程socket多线程下载带界面

Java 期末复习 习题集

java课程 期末考试

人言束负兑生|完美是完蛋的开始 3977

java多线程面试题和答案

面试题和答案. 有多线程, 数据库,框架题目等知识点

java网络编程——网络版题库程序

java网络编程——网络版题库程序(主要技术java+socket+多线程+mysql),程序是C/S 版本的,由于服务器端是java写的,所有客户端使用android也是很容易与服务器对接的

python期末复习

定义类中成员变量的代码如下:(通过self.变量名定义的属性)【例9.3】定义类Person2。定义成员变量(域)class Person2: #定义类Person2def __init__(self, name,age): #__init__方法self.name = name #初始化self.name,即成员变量name(域)self.age = age #初始化self.age,即成员变量age(域)def say_hi(self): #定义类Person2的函数say_hi()

csdn3043663729的博客 2853

Java网络编程期末考试复习题库+答案

Java网络编程期末考试复习题库+答案 java网络编程考试题目,内含有Java网络编程期末复习题(I/O、多线程、网络编程、数据库操作),有答案

《JAVA语言程序设计》期末考试试题及答案

文章目录《JAVA语言程序设计》期末考试试题及答案1(应考必备题库)一、单选择题二、填空题三、写出下面程序的运行结果《JAVA语言程序设计》期末考试试题及答案2(应考必备题库)一.判断题二.单项选择题三.程序阅读题4.阅读以下程序,写出输出结果。《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)一、单项选择题二、填空题三、程序阅读题四、简答题《JAVA语言程序设计》期末考试试题及答案4(...

Miracle1203的博客 14万+

STC8G1K08A 实战应用:从配置到功能实现

本文详细介绍了STC8G1K08A单片机的实战应用,从开发环境搭建、GPIO配置、ADC模块使用到定时器中断处理和PWM输出等核心功能。重点讲解了外设模块的协同工作配置技巧,并分享了实际项目开发中的经验教训,帮助开发者快速掌握STC8G1K08A的高效应用。

n4o5p6q7r的博客 392

手把手教你绕过Incapsula reese84防护:从JS反混淆到动态Token生成全流程

本文深入解析了以Incapsula reese84为代表的现代Web客户端挑战防护机制,详细介绍了从JS反混淆、算法逆向到动态Token生成的全流程实战方法。文章系统阐述了如何通过模拟浏览器指纹、移植关键算法或嵌入JS引擎来构建自动化应对策略,并提供了稳健的令牌管理与系统架构设计思路,帮助开发者在合规前提下提升自动化工具的适应性。

jenkins8butler的博客 518

JAVA期末复习知识点总结大全

答:Lambda表达式是Java中表达匿名函数的方法,可以使得编程中的代码更简洁。(可以将Lambda表达式理解为一种没有函数名的函数)参数列表:它定义了函数的输入参数。这些参数的数量和类型可以根据需要定义,如果没有参数,可以写成()。函数体:它定义了Lambda表达式要执行的操作。函数体可以是一个表达式,也可以是一组语句。箭头符号:->是Lambda表达式的核心,它将参数列表和函数体分隔开。(参数列表) -> {语句;

RuanFun的博客 1万+

【FPGA】AD9653设计和调试总结

基于FPGA的AD9653设计,设计思路,注意事项

weixin_41246509的博客 7597

大学生期末考试Java复习题

JAVA复习题 第1章 Java开发入门 习题 一、 填空题 将.java源文件编译为.class文件的是【 】命令。 在Eclipse窗口中选择菜单【 】→New→Java Project创建Java项目。 在安装JDK的过程中,有三个功能模块可供选择,它们分别是【 】,【 】和【 】。 将Hello.java文件编译为class文件,需要键入...

qq_45077173的博客 1万+

VSCode配置ClangFormat:让C++大括号乖乖不换行(附常见样式对比)

本文详细介绍了如何在VSCode中配置ClangFormat,实现C++代码大括号不换行的格式化风格。通过对比Attach、Allman等主流大括号样式,并提供从快速设置到项目级配置的完整指南,帮助开发者打造统一、高效的代码格式化工作流,提升团队协作效率。

weixin_28835551的博客 216

Unity类银河战士恶魔城学习总结(P103之前 Enemy相关 , 骷髅战士,状态机,敌人状态,)

udemy的Alex银河战士恶魔城,记录我自己的学习,代码会逐渐每一p更新,仅供参考学习。

suzh1qian的博客 1633

Java期末复习题

第1章Java开发入门 一、填空题 1.将.java源文件编译为.class文件的是【 】命令。 2.在Eclipse窗口中选择菜单【 】→New→Java Project创建Java项目。 3.在安装JDK的过程中,有三个功能模块可供选择,它们分别是【 】,【 】和【 】。 4.将Hello.java文件编译为class文件,需要键入【 ...

唐昊 2万+

Keil5安装包别乱下!手把手教你从官网精准下载C51/V960和MDK5,并完成2032年有效注册(避坑网络资源失效)

本文详细介绍了如何从Keil官网安全下载C51 V9.60和MDK5开发环境,并提供2032年有效注册的完整指南。通过验证安装包完整性、自定义安装路径和长期激活方案,帮助开发者避开网络资源陷阱,搭建稳定的STM32开发环境。

weixin_26886855的博客 537

JAVA复习总结——期末复习知识点总结大全

Java 概述语言定义与分类:计算机语言是人与计算机通信的指令集合,包括机器语言(二进制 0 和 1 组成)、汇编语言(英文缩写标识符)和高级语言(接近自然语言),Java 是一种高级计算机语言。Java 的特点平台无关性:通过虚拟机原理,运行于虚拟机之上,数据类型与机器无关,实现 “一次编写,到处运行”。安全性:舍弃指针对存储器地址的直接操作,通过字节代码验证器和异常处理机制防止病毒及非法代码侵入。面向对象性。

hanwei020502的博客 2712

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1097

【异常】Cursor 编辑器 “Too many computers“ 报错排查与完整解决方案

该报错通常在启动Cursor、调用AI对话/代码补全核心功能时触发,会直接阻断编辑器AI能力的正常使用。

奶爸的编程之路,也就一周冷个三天 463
上一篇: Java网络编程期末复习——第三章 I/O流
下一篇: Java网络编程期末复习——第五章 TCP/IP协议
帅帅77
博客等级 码龄8年 23粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值