| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
主要的就是一个Thread类,Thread类拥有一个Run()方法,还有一个Thread.start()来启动线程开工。实现多线程有两个方法: 网管u家u.bitsCN.com
1.将要并行执行的操作封装到一个继承自Thread的类中去 网管联盟bitsCN_com

public class thread_ex extends Thread...{ 网管网www_bitscn_com 


public void init() ...{ 中国网管联盟bitsCN.com
}

public void start() ...{ 网管网www.bitscn.com
//**will cll run() defualt.
}

public void stop() ...{ 中国网管联盟bitsCN.com

}

public void run()...{ 网管bitscn_com
//**do some parallelization works.
}
}
2.延伸Runnable接口,满足一些继承了其他类又想多线程的(因为java不像C++一样支持多继承) 网管bitscn_com

public class ThreadTest extends FatherClass implements Runnable
public void init() ......{
}

public void start() ......{
//**will cll run() defualt.
}

public void stop() ......{ 中国网管论坛bbs.bitsCN.com

}

public void run()......{ 网管网www.bitscn.com
//**do some parallelization works.
}
} 与线程有关的几个关键词是很重要的:synchronize wait notify notifyAll
网管网www.bitscn.com
如果不能很好的理解他们还是不要用的好。简单的介绍如下
网管论坛bbs_bitsCN_com
synchronize 修饰定义一个对象或者方法或者属性的访问必须串行化访问,顾名思义像在银行取钱要排队一样,那个业务员就是一个synchronize 对象。只有像我等无钱之辈才去排队,那些个VIP自然不用了。 网管论坛bbs_bitsCN_com
wait 和notify notifyAll是一家的,他们是对象级的锁,余天生驽钝,这个偶翻了许多资料才理解,如果不能理解就看代码吧。多线程中的一个去访问共享资源发现有人使用,于是就在这个资源上面wait,占用者如果使用完了就notify()一下通知下一个等待者可以进来了,notifyAll()就是说在外面等的一起上吧!可是只能服务与一个人,于是大家抢着进去,力气大的自然占便宜。可是在java世界里面JVM说了算。 网管联盟bitsCN@com
有wait和notify的地方一定有synchronize,反过来不成立,wait 和notify不在Thread的势力范围
网管联盟bitsCN@com
|
0
|
评论加载中…