java中多线程的使用_Java中多线程的使用!!

简介:

1.要了解多线程,首先我们得先了解进程和线程。那么什么是进程?进程就是一个正在运行的程序分配内存让应用程序能够运行的叫做进程。那么什么又是线程呢?线程:在一个程序中,负责代码的执行,就是一个进程中的执行路劲的称为线程。然而,在一个进程中,同时又多个线程在执行不同的任务时,我们就称为多线程。

2.我们为什么要使用多线程呢?因为在一个进程中,有时候执行的任务,不仅仅只执行的是一个任务,有可能同时在执行多个任务,这时候我们就得用到多线程来解决这个问题!比如说售票,比如有三个窗口,同时在卖同一类型的50张票,窗口一卖了第50张,那么还剩49张,在卖第49张票的时候,有可能是第一个窗口卖出的第49 张票,也有可能是第二个窗口卖出的第49张票,也有可能是第三个窗口卖出去,所有这个时候我们就用到多线程来解决这个问题。那么按上面举的例子,我们怎么用代码来实现这个功能呢?

代码实现:

class SaleTickets extends Thread{

//设置总票数

static int num = 50;

static Object o = new Object();

public SaleTickets(String name){

super(name);

}

//重写Thread的Run方法

public void run() {

//用一个循环来模拟卖票的功能

while (true) {

//加锁

synchronized ("锁") {

//为了更好的看到效果,让它睡眠0.5秒

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

if (num > 0) {

System.out.println(this.getName()+"卖了第"+num+"张票");

num--;

}else {

System.out.println("票已经卖完");

break;

}

}

}

}

}

public class Demo2 {

public static void main(String[] args){

SaleTickets s1 = new SaleTickets("窗口1");

s1.start();//开线程

SaleTickets s2 = new SaleTickets("窗口2");

s2.start();//开线程

SaleTickets s3 = new SaleTickets("窗口3");

s3.start();//开线程

}

}

总结:

使用多线程能帮我们解决一个进程中同时执行对个不同的任务,提高了资源的利用率。但是也给CPU增加了负担,降低了进程中线程的执行概率,容易引发线程安全问题,出现死锁现象。所有线程不是开的越多越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值