上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 148 下一页
摘要: 在线程的常见方法一节中,已经接触过join()方法的使用。 在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程将早于子线程结束。这时,如果主线程想等子线程执行完成才结束,比如子线程处理一个数据,主线程想要获得这个数据中的值,就要用到join()方法了。方法join()的作 阅读全文
posted @ 2018-12-14 18:17 QiaoZhi 阅读(16890) 评论(1) 推荐(8)
摘要: 回车实现Tab事件 有时候我们希望回车事件绑定的是键盘的Tab事件。我的第一思路就是切换事件的keyCode,比如键盘事件按下的keyCode如果是13,我们将keyCode改为9。但是在实际编程中却未能实现此效果。于是只能自己通过手写JS脚本来调用input元素的focus()事件。 1.原来的一 阅读全文
posted @ 2018-12-14 16:05 QiaoZhi 阅读(1351) 评论(0) 推荐(0)
摘要: 在Java语言中提供了各种各样的输入/输出流Stream,使我们能够方便地对数据进行操作,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。一个发送数据到输出管道,另一个线程从输入管道中读数据。通过使用管道,实现不同线程间的通信,而无需借助于临时文件之类的动西。 在Ja 阅读全文
posted @ 2018-12-14 12:17 QiaoZhi 阅读(1922) 评论(0) 推荐(0)
摘要: wait/notify最经典的案例就是"生产者/消费者"模式。但是此模式有一些需要注意的地方。 生产者-消费者也有多种实现方式。 (1)常见的就是synchronized结合wait+notify实现 (2)用Lock类实现 (3)使用BlockingQueue阻塞队列实现 一、 synchroni 阅读全文
posted @ 2018-12-13 18:56 QiaoZhi 阅读(2725) 评论(0) 推荐(0)
摘要: 使线程之间进行通信之后,系统间的交互性更加强大,在大大提高CPU利用率的同时还会使程序对各线程任务在处理的过程中进行有效的把控与监督。 1.不使用wait/notify实现线程间通信 使用sleep()+while(true)也可以实现线程间通信。 例如:两个线程,一个线程向集合中添加元素,当集合中 阅读全文
posted @ 2018-12-12 23:01 QiaoZhi 阅读(669) 评论(0) 推荐(0)
摘要: 在学习多线程的时候用到了匿名内部类,匿名内部类可以访问static静态成员变量或者final修饰的局部变量。 匿名内部类在编译之后会生成class文件,比如Test内的第一个匿名内部类编译之后就是Test$1.class; 匿名内部类中访问的final修饰的局部变量在生成Test$1.class之后 阅读全文
posted @ 2018-12-10 22:53 QiaoZhi 阅读(2614) 评论(0) 推荐(2)
摘要: 关键字volatile关键字的作用是使变量在多个线程间可见。也就是volatile只能保证可见性,不能保证原子性。所以volatile不具备同步性。 1.一个死循环问题 如果不是在多继承的情况下,使用继承Thread类和实现Runnable接口在取得程序运行的结果上并没有什么太大的区别。如果一旦出现 阅读全文
posted @ 2018-12-10 18:50 QiaoZhi 阅读(567) 评论(0) 推荐(1)
摘要: 主要学习多线程的并发访问,也就是使得线程安全。 同步的单词为synchronized,异步的单词为asynchronized 同步主要就是通过锁的方式实现,一种就是隐式锁,另一种是显示锁Lock,本节主要研究隐式锁synchronized的使用。 每个Java对象都可以用作一个实现同步的锁,注意前提 阅读全文
posted @ 2018-12-08 22:55 QiaoZhi 阅读(1117) 评论(0) 推荐(0)
摘要: 1.停止线程 停止线程不像停止一个循环break一样干脆。 停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前的操作。虽然看起来简单,但是必须做好正确的防范措施,以便达到预期的效果。停止一个线程可以用Thread.stop(),但最好不要用它。虽然它确实可以停止一个正在运行的线程 阅读全文
posted @ 2018-12-07 22:13 QiaoZhi 阅读(15283) 评论(0) 推荐(1)
摘要: 线程类有好多方法,下面介绍一些常用的方法。 1.start() 实例方法 启动一个线程用的是thread.start()方法,如果直接调用run方法是同步调用,相当于一个普通的方法调用。 start()方法使线程开始执行,JVM会自动调用线程的run方法。new出来线程,调用start()方法即处于 阅读全文
posted @ 2018-12-05 14:06 QiaoZhi 阅读(5715) 评论(2) 推荐(1)
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 148 下一页