import java.io.*;
class Daemon extends Thread {
private static final int SIZE = 10;//定义一个静态常量
private Thread[] t = new Thread[SIZE];//定义一个线程数组
public Daemon() {//构造方法
setDaemon(true);//设置一个驻留的线程
start();//运行线程
}
public void run() {
for(int i = 0; i < SIZE; i++) {
t[i] = new DaemonSpawn(i);//把线程数组进行实例化
}
for(int i = 0; i < SIZE; i++) {
System.out.println("t[" + "].isDaemon()= "
+ t[i].isDaemon());//打印出某是否为一个驻留程序
}
while(true) {//循环让出控制权给同一个级别的线程
yield();
}
}
}
class DaemonSpawn extends Thread {
public DaemonSpawn(int i) {//构造方法
System.out.println("DaemonSpawn" + i +"started");//打印是哪个开始执行
start();//让线程开始执行起来
}
public void run() {
while(true) {//一直都在让出它的控制权
yield();
}
}
}
public class Daemons {
public static void main(String[] args) {
Thread d = new Daemon();
System.out.println("d.isDaemon()= "+d.isDaemon());
BufferedReader stdin =//构造了一个字符输入流
new BufferedReader(new InputStreamReader(System.in));
System.out.println("Waiting for CR");
try {
stdin.readLine();//从键盘中读一行
}catch(IOException e) {
}
}
}
import java.io.PrintWriter;
class Point2D {
int x, y;
Point2D() {
this(0, 0);
}
Point2D(int x) {
this(x, 0);
}
Point2D(int x, int y) {
this.x = x;
this.y = y;
}
double length() {
return Math.sqrt(x * x + y * y);
}
}
class MyPoint extends Point2D {
int x, y;
MyPoint(int x, int y) {
super(x, y);
this.x = x;
this.y = y;
}
double length() {
return Math.sqrt(x * x + y * y);
}
double distance() {
return Math.abs(this.length() - super.length());
}
}
public class PointTest {
public static void main(String[] args) {
PrintWriter out = new PrintWriter(System.out, true);
MyPoint mp = new MyPoint(4, 3);
Point2D p = new Point2D(11);
Point2D q = mp;
mp.x = 5;
mp.y = 12;
out.println(mp.y);
// out.println(mp.x);
out.println(p.y);
// out.println(q.y);
// out.println(mp.length());
// out.println(p.length());
// out.println(q.length());
// out.println(mp.distance());
}
}
分享到:
相关推荐
在"C++多线程学习"这个主题中,我们主要探讨的是如何在C++环境中创建和管理线程,以及解决并发访问时可能出现的问题。 一、C++11及后续版本中的多线程支持 自C++11标准开始,C++提供了内置的多线程库`<thread>`,...
关于C#多线程学习,本篇将深入探讨在C#中如何管理和操作线程,包括启动、停止、暂停线程、调整线程优先级等关键知识点。 ### 启动线程 在C#中,启动一个新线程通常通过`Thread`类实现。创建一个新的线程对象时,...
多线程学习笔记 iOS开发中,多线程是一种常见的技术手段,用于优化应用程序的性能,提升用户体验。多线程的核心是让程序能够并发地执行多个任务,合理地利用设备的计算能力,尤其是在拥有多个核心的处理器上。 ...
### C#多线程学习详解 #### 一、多线程的基本概念 ##### 1. 什么是进程? 进程是程序的一次动态执行过程,它包含了正在运行的程序所需的内存、系统资源以及执行上下文。简单来说,当你启动一个程序时,操作系统会...
在Java编程语言中,线程是程序执行的基本单元,它允许程序并发地...同时,"Java线程学习和总结.files"目录下的文件可能是与文章相关的辅助资料,例如代码示例或图片。建议结合这些资料一起学习,以获得更全面的知识。
【C#多线程学习(二)】 在C#编程中,多线程是一个重要的概念,它允许程序同时执行多个任务,从而提高了程序的效率和响应性。在本篇文章中,我们将深入探讨如何操纵线程,包括线程的状态以及线程优先级。 首先,...
### CoreJava多线程学习总结 #### 一、基本概念 多线程是现代软件开发中非常重要的一个概念,尤其在Java这样的高级编程语言中,它使得程序能够更高效地利用计算机资源,实现并发处理任务。为了更好地理解CoreJava...
### 多线程学习文档知识点总结 #### 一、线程的基本概念及关系 ##### 进程(Process) - **定义**:进程是Windows系统中的一个基本概念,它包含了运行程序所需的所有资源。 - **特性**: - 相对独立性:一个进程...
总的来说,Java多线程学习涵盖了线程的创建、同步、通信、调度以及异常处理等多个方面,深入理解和掌握这些知识点对于提升Java程序的性能和复杂性至关重要。通过阅读提供的"Java多线程.pdf"文档,你可以进一步了解和...
总结,本资料“C#多线程学习代码资料”会涵盖这些知识点,并通过示例代码帮助初学者理解多线程的创建、同步、通信以及异常处理等概念,是学习C#多线程编程的良好起点。通过深入学习和实践,开发者能够更好地掌握多...
C#多线程学习(一) 本篇文章将深入探讨C#中的多线程机制,涵盖了多线程的相关概念、进程、线程、多线程的好处和不利方面等。 一、什么是进程? 一个进程是指运行中的程序,包括程序所使用到的内存和系统资源。...
### Java多线程学习资料知识点解析 #### 一、引言 Java作为一种广泛使用的编程语言,在并发编程领域具有独特的优势。多线程是Java中实现并发处理的核心技术之一,能够显著提升程序的性能和响应性。本文将深入探讨...
### Java线程学习知识点 #### 一、Java线程概览 - **定义与作用**:线程是在程序中独立且并发执行的路径。在Java中,线程被设计为语言的一部分,而不是作为操作系统的底层工具。每个Java程序至少包含一个主线程,在...
本汇总资料主要聚焦于多线程的学习,旨在帮助开发者深入理解并熟练掌握这一技术。 多线程是指在单个程序中同时执行多个线程(或称为执行流)。这允许程序同时处理多个任务,如后台数据处理、用户界面更新等,提高了...
在学习Java多线程的过程中,理解线程与进程的概念是非常基础且重要的一步。首先,进程是一个程序的执行实例,是操作系统资源分配的基本单位,具有独立的地址空间和运行状态。每个进程至少包含一个线程,我们称之为...
C#中的多线程是程序设计中的重要概念,特别是在现代计算环境中,多核处理器和并发执行的需求使得多线程成为了优化性能的关键技术。在C#中,多线程的运用可以提升程序的并发能力,充分利用硬件资源,提高CPU的利用率...
Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java...
最后,"Linux多线程学习(五)"可能对这些知识进行了综合应用或者讨论了高级话题,如死锁预防和线程池的实现。 掌握这些多线程编程技术对于开发高效的Linux应用程序至关重要,无论是系统编程、网络服务还是并行计算...