多线程小结
摘要:1、在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。 实现Runnable接口比继承Thread类所具有的优势:(1)适合多个相同的程序代码的线程去处理同一个资源(2)可以避免java中的单继承的限制(3)增加程序的健壮性,代码可以被多个线程共享,
阅读全文
posted @
2020-11-30 20:02
lkwkk
阅读(58)
推荐(0) 编辑
线 程 通 信
摘要:例如,当“排水”线程得到对水塘的控制权时,也就是拥有了water这个对象,但水塘中却没有水,此时,water.isEmpty()条件满足,water对象被释放,所以“排水”线程在等待。可以使用如下代码在同步机制保护下调用wait()方法:synchronized(water){ ……//省略部分代码
阅读全文
posted @
2020-11-28 22:32
lkwkk
阅读(49)
推荐(0) 编辑
在程序中使用多线程对系统产生以下影响
摘要:(1)线程需要占用内存。(2)线程过多,会消耗大量CPU时间来跟踪线程。(3)必须考虑多线程同时访问共享资源的问题,如果没有协调好,就会产生令人意想不到的问题,例如可怕的死锁和资源竞争。(4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的全局变量,所以程序也必须考虑多线程同时访问全局变量
阅读全文
posted @
2020-11-26 22:44
lkwkk
阅读(523)
推荐(0) 编辑
非可执行
摘要:在“可执行”状态下,线程可能被执行完毕,也可能没有执行完毕,处于等待执行权的队列中,当使线程离开“可执行”状态下的等待队列时,线程进入“非可执行”状态。可以使用Thread类中的wait()、sleep()方法使线程进入“非可执行”状态。
阅读全文
posted @
2020-11-24 22:42
lkwkk
阅读(54)
推荐(0) 编辑
可执行
摘要:当线程启用start()方法后,进入“可执行”状态,执行用户覆写的run()方法。一个线程进入“可执行”状态下,并不代表它可以一直执行到run()结束为止,事实上它只是加入此应用程序执行安排的队列中,也就是说,这个线程加入了进程的线程执行队列中,对于大多数计算机而言,只有一个处理器,无法使多个线程同
阅读全文
posted @
2020-11-23 17:22
lkwkk
阅读(161)
推荐(0) 编辑
创建
摘要:当实例化一个Thread对象并执行start()方法后,线程进入“可执行”状态,开始执行,虽然多线程给用户一种同时执行的感觉,但事实上在同一时间点上,只有一个线程在执行,只是线程之间转换的动作很快,所以看起来好像同时在执行一样。
阅读全文
posted @
2020-11-22 18:00
lkwkk
阅读(180)
推荐(0) 编辑
继承Thread类
摘要:在Java语言中要实现线程功能,可以继承java.lang.Thread类,这个类已经具备了创建和运行线程的所有必要架构,通过重写Thread类中run()方法,以实现用户所需要的功能,实例化自定义的Thread类,使用start()方法启动线程。
阅读全文
posted @
2020-11-21 13:32
lkwkk
阅读(68)
推荐(0) 编辑
Thread类
摘要:Thread类有4个最常用构造方法。(1)默认构造方法默认的构造方法,没有参数列表。语法格式为:Thread thread=new Thread(); (2)基于Runnable对象的构造方法该构造方法包含了Runnable类型的参数,它是实现Runnable接口的类的实例对象,基于该构造方法创建的
阅读全文
posted @
2020-11-21 12:12
lkwkk
阅读(68)
推荐(0) 编辑
线程的创建
摘要:在Java语言中,线程也是一种对象,但并非任何对象都可以成为线程,只有实现Runnable接口或继承了Thread类的对象才能成为线程。 Thread类中的主要的方法包括:start()方法interrupt()方法join()方法run()方法。其中start()方法与run()方法最为常用,st
阅读全文
posted @
2020-11-20 20:02
lkwkk
阅读(64)
推荐(0) 编辑
Java线程优先级(Priority)
摘要:Java thread priorityPriority in range 1-10,默认值为5。线程创建时,子线程继承父线程的优先级线程创建完毕后,可以通过调用setPeriority方法改变优先级。操作系统线程调度,根据优先级进行非抢占调度:英国的绅士风度,java中使用Thread类的yiel
阅读全文
posted @
2020-11-18 22:33
lkwkk
阅读(207)
推荐(0) 编辑
监控服务
摘要:JDK7中定义了一个WatchService接口,可用于监控特定对象的“动静”。 WatchService内部管理着被监控对象的一个“队列”,用于存储此对象变动的信息。被监控的对象必须实现Watchable接口(Path对象就实现了Watch接口),它的register方法将它与WatchServi
阅读全文
posted @
2020-11-15 22:51
lkwkk
阅读(183)
推荐(0) 编辑
查找文件
摘要:要在文件系统中查找文件,首先需要确定文件名的匹配规则。 JDK 7中定义了一个PathMatcher接口,实现此接口的类可用于确定路径的匹配规范。匹配规则有两类:一类是简单的诸如“ *.java”之类的通配符,另一类是正则表达式。JDK中规定第一种匹配规则以“ glob:”打头,第二种以“ rege
阅读全文
posted @
2020-11-14 22:41
lkwkk
阅读(170)
推荐(0) 编辑
java对文件和目录操作
摘要:主要使用java.nio.file.Files类来完成createFile:创建文件createDirectory:创建目录delete/deleteIfExists:删除文件、目录、文件链接copy/move:复制或移动
阅读全文
posted @
2020-11-12 22:21
lkwkk
阅读(95)
推荐(0) 编辑
重定向标准输入/输出
摘要:System.in和System.out代表系统的标准输入和输出。System提供了以下方法将其重定向public static void setOut(PrintStream out);public static void setIn(InputStream in);
阅读全文
posted @
2020-11-09 22:11
lkwkk
阅读(59)
推荐(0) 编辑
流的转换和内存流
摘要:InputStreamReader和OutputStreamWriter可以将字节流转换为字符流。 使用ByteArrayInputStream和ByteArrayOutputStream两个类将Byte数组作为读写源头和目的地。
阅读全文
posted @
2020-11-08 20:02
lkwkk
阅读(64)
推荐(0) 编辑
课后作业—5
摘要:编写一个程序,指定一个文件夹,能自动计算出其总容量 编写一个文件加解密程序,通过命令行完成加解密工作 编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件 //第一题package 计算文件夹容量; import java.io.File; import j
阅读全文
posted @
2020-11-07 10:02
lkwkk
阅读(56)
推荐(0) 编辑
缓冲类的使用示例
摘要:从文件中读入字串BufferedReader in=new BufferedReader(new FileReader(“input.txt”) );String line=in.readLine();也可以使用Files的静态方法创建BufferedReader对象,它还可以指定编码:Buffer
阅读全文
posted @
2020-11-06 22:28
lkwkk
阅读(66)
推荐(0) 编辑
缓冲技术
摘要:Java使用了文件缓冲技术,其优点有:提高了I/O的性能在内存中开辟一块区域,称为缓冲区当缓冲区满时一次写入到磁盘中。相关的Java类BufferedInputStream/BufferedOutputStream:适合于包容二进制数据的文件BufferReader/BufferWriter:适合于
阅读全文
posted @
2020-11-05 22:50
lkwkk
阅读(139)
推荐(0) 编辑
流的基类
摘要:字节流的两个基类InputStream和OutputStream:以字节为单位,是所有字节输入与输出流的父类;字符流的两个基类Reader和Writer:以字符(2个字节)为单位。
阅读全文
posted @
2020-11-04 22:40
lkwkk
阅读(182)
推荐(0) 编辑
流的分类
摘要:Java中的流可以按以下标准进行划分:1、 输入流和输出流:数据“流入”程序的称为“输入”。2、字节流和字符流:指存取数据的最小单位。3、节点流(Node Stream)和处理流(Processing Stream):节点流直接连接到数据源,处理流是对一个已存在的流的连接和封装,通过所封装的流的功能
阅读全文
posted @
2020-11-03 22:30
lkwkk
阅读(285)
推荐(0) 编辑
什么是流?
摘要:一连串有顺序的数据系列可以看成是一个流。Java将文件看成是一个流。
阅读全文
posted @
2020-11-02 20:22
lkwkk
阅读(132)
推荐(0) 编辑
关于开发中异常处理的建议
摘要:在中间层组件中抛出异常,在界面层组件中捕获异常在底层组件中捕获JVM抛出的“只有程序员能看懂的”异常,转换为中间层的业务逻辑异常,再由界面层捕获以提供有意义的信息。自身能够处理的异常,不要再向外界抛出。尽可能地在靠近异常发生的地方捕获并处理异常 尽可能地捕获最具体的异常类型,不要在中间层用catch
阅读全文
posted @
2020-11-01 22:22
lkwkk
阅读(55)
推荐(0) 编辑