[seriesposts sid=500] 在Java多线程编程中,wait()的作用的是让当前线程进入阻塞状态,notify()是让当前线程唤醒继续执行。虽然是对线程状态的控制,但它们其实都是Object中的方法,这是因为wait与notify所起的作用与线程间的互斥锁有关。 在执行wait()和notify()之前,必须要先获得互斥锁,即一定要和synchronized一起使用。wait()的含义是让出获 More
[seriesposts sid=500] 先看个yield让步的例子 package com.javaer.thread; public class YThread implements Runnable { private Object obj = new Object(); /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub YThread s = new YThread(); Thread t1 = new Thread(s, "Thread More
[seriesposts sid=500] 线程的同步和锁的问题,我们先来看个例子, 下面的例子我们希望两个线程对m变量进行削减 package com.javaer.thread; /** * 测试线程同步锁的问题 * @author yuexiaosheng * */ public class SysTest implements Runnable { int m = 10; public static void main(String[] args) { SysTest s1= new SysTest(); More
[seriesposts sid=500] 使用实现Runnalbe可以做出一个多线程,之前我们采用继承Thread的办法也做出一个。 public class TestMitiThread1 implements Runnable { public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + " 线程运行开始!"); TestMitiThread1 test = new TestMitiThread1(); More
[seriesposts] 多线程都会遇到主线程控制的事情,一个宿主分发了多个任务出去,如何知道各自的完成情况。就需要子线程给宿主报告。 1、明确目的,为什么要使用多线程?如果是由于单线程读写或者网络访问(例如HTTP访问互联网)的瓶颈,可以考虑使用线程池。如果是对不同的资源(例如SOCKET连接)进行管理,可以考虑多个线程。 2、线程使用中要注意,如 More
下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1、如何比较字符串,应该用”==”还是equals()? 总的来说,”==”是用来比较字符串的引用地址,而equals()才是比较字符串的值。两个值相同的字符串用”==”比较结果有可能是false,而用equals()则一定为true。除非两个字符串是同一个new出来的对象,不然 More
发生这个的背景: 昨天能启动,今天启动不了。 发生的原因: 系统内存不足,被其他软件吃的差不多了。 解决方案: 如何害怕复制以下内容会改变你的配置,自己手工修改内存值。256 改成128 512改成256 方法如下: 找到eclipse目录下的eclipse.ini,可以看到如下内容: -startup plugins/org.eclipse.equinox.launcher_1.1 More
很多精细的程序,需要计算一次执行所消耗的时间。 或者,我们很多时候会测试一次数据读取所消耗的时间 System.currentTimeMillis() 可以读取当前时间的毫秒数 值是当前时间减去1970年第一天0分0秒。 package com.javaer.examples; public class JavaTime { public static void main(String[] args) { long t1 = System.currentTimeMillis(); for ( More
下面的这些都算是比较高级的问题了,面试中一般也很少问到,因为它们可能会把面试者拒之门外。不过你可以自己找个时间来实践一下。 1. System.exit(0)会跳过finally块的执行 System.setSecurityManager(new SecurityManager() { ?@Override public void checkExit(int status) { throw new ThreadDeath(); } ?}); try { ?System.exit(0); } finall More
java将汉字转成拼音之前月小升发过一个比较简单的汉字转拼音版本,可以解决大多数汉字,不过有一些可能被误判为zuo 就是一个无法判断的拼音,最后会变成这个 比如 铎 这个字 拼音为duo 会被误判 后来发现一个拼音包net.sourceforge.pinyin4j 下载去这里 http://pinyin4j.sourceforge.net/ package com.javaer.examples; import net.sourceforge. More