最近在玩安卓,要提到多线程, 总感觉那东西有点不明白,总是有那些停止,暂停,销毁,启动什么的,总是执行那些程序,先后,快慢,说实话,不知道那是什么意思的,
个人感觉多线程并不是什么情况下都适用的,一般用在定时功能,用得最好的只有播放器,听音乐的这些软件了, 有快进,有慢,有暂停,关闭这些都是多线程的,多线程的意义不在于共同执行一个任务或者是一段代码什么的, 他的意义在于,控制多个线程来完成一个任务,有选择的来完成,
不知道理解错了没有,也就是自己的理解吧,确实不太明白
贴出多线程例子,看意思代码分析
package com.pu.gc;
public class TestThread{
public static void main(String[] args) {
//创建饼的实例
Bing b = new Bing();
//创建同步的吃饼和烙饼实例
GongNeng g = new GongNeng(b);
//创建线程两个消费者两个生产者
ChuShi c1 = new ChuShi(g);
ChuShi c2 = new ChuShi(g);
XiaoFei x1 = new XiaoFei(g);
XiaoFei x2 = new XiaoFei(g);
//启动线程
c1.start();
c2.start();
x1.start();
x2.start();
}
}
class ChuShi extends Thread{
private GongNeng g;
public ChuShi(GongNeng g){
this.g = g;
}
public void run(){
for(;;){
g.lao();
}
}
}
class XiaoFei extends Thread{
private GongNeng g;
public XiaoFei(GongNeng g){
this.g = g;
}
public void run(){
for(;;){
g.chi();
}
}
}
class GongNeng {
private Bing b;
public GongNeng(Bing b){
this.b = b;
}
public synchronized void lao(){
if(b.getBing()<10){
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread()+
":厨师烙了一张饼,盘里还剩"+(b.getBing()+1)+"张饼");
b.setBing(b.getBing()+1);
}
}
public synchronized void chi(){
if(b.getBing()>0){
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread()+
":消费者吃了一张饼,盘里还剩"+(b.getBing()-1)+"张饼");
b.setBing(b.getBing()-1);
}
}
}
class Bing {
private int bing = 10;
public int getBing() {
return bing;
}
public void setBing(int bing) {
this.bing = bing;
}
}
分享到:
相关推荐
这是一篇介绍IOS多线程理解的文章,简洁易懂,方便阅读
通过控件启动,暂停,继续等按钮,操作子线程,在winform控件中输出数据。对于初学者来说可以根据代码很快理解多线程,对多线程的认识
Python里的多线程是假的多线程,不管有多少核,同一时间只能在一个核中进行操作!利用Python的多线程,只是利用CPU上下文切换的优势,看上去像是并发,其实只是个单线程,所以说他是假的单线程。 那么什么时候用多...
本书是一本通俗易懂的C#多线程编程指南,通过70多个容易理解的示例,循序渐进地讲解C#5.0中的异步及并发编程,引导读者了解Windows下C#多线程编程的多样性。 通过阅读本书,你将学到: 使用原始线程、异步线程,...
理解多线程,写一个多线程应用程序,要求能在用户级实现线程的调度,如启动、挂起、恢复、停止,的C thread、java thread实现。
有助于多线程的开发和理解,程序有注释便于理解,可以尝试以此为基础二次开发 学习开发属于自己的聊天室程序,学习多线程的基础。。。
易语言版的多线程通用框架,示范了多线程启动、暂停、恢复、销毁的详细过程,有助于对多线程的理解,运用。
一张图方便理解和掌握java 多线程之间通信的实质 java 多线程 其实就是每个线程都拥有自己的内存空间,多线程之间的通信,比例A线程修改了主内存(main方法的线程)变量,需要把A线程修改的结果同步到主线程中,...
统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。 本文我们将介绍在Linux 下编写多进程和多线程程序的一些初步知识。 1 引言 对于没有接触过 Unix/Linux 操作系统的人来说,fork ...
很好的多线程例子,学习会很有用的哦,记得来下载喔,谢谢各位!
易语言多线程许可证的理解使用源码,多线程许可证的理解使用,公共参数增加,公共参数减少
基于python的多线程例子,详细介绍了多线程处理,便于理解多线程
多线程操作实例源码 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指...
多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...
这是一个简单的多线程程序 有助于对多线程的理解
本文将深入探讨Java多线程编程的重要性和使用方法。介绍多线程概念,讨论多线程的优势,并提供实际示例。此外,还将探讨多线程编程中的常见问题以及如何...通过本文,您将获得对Java多线程编程的全面理解和实践经验。
代码里面包含一个并发4个线程同时运行 全部开始 全部停止 单个停止还有点问题。 还有生产者消费者 里面的里面能帮助你理解多线程的运用!
VC++环境下编写的一个多线程文件读写操作的实例。简单的利用互斥变量、原子操作等技术实现多线程读写文件时的互斥,从而确保文件在操作过程中不会被破坏。...适合刚接触多线程编程的新手学习理解多线程程序的编程思路。
理解线程的概念 理解.NET中线程的属性和方法 创建和使用线程 理解线程的特点、优点及使用场合 在.NET程序设计中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处理的,这些类在System....