Java中多线程的使用!!
2016-12-07 12:52
316 查看
简介:
1.要了解多线程,首先我们得先了解进程和线程。那么什么是进程?进程就是一个正在运行的程序分配内存让应用程序能够运行的叫做进程。那么什么又是线程呢?线程:在一个程序中,负责代码的执行,就是一个进程中的执行路劲的称为线程。然而,在一个进程中,同时又多个线程在执行不同的任务时,我们就称为多线程。
2.我们为什么要使用多线程呢?因为在一个进程中,有时候执行的任务,不仅仅只执行的是一个任务,有可能同时在执行多个任务,这时候我们就得用到多线程来解决这个问题!比如说售票,比如有三个窗口,同时在卖同一类型的50张票,窗口一卖了第50张,那么还剩49张,在卖第49张票的时候,有可能是第一个窗口卖出的第49 张票,也有可能是第二个窗口卖出的第49张票,也有可能是第三个窗口卖出去,所有这个时候我们就用到多线程来解决这个问题。那么按上面举的例子,我们怎么用代码来实现这个功能呢?
代码实现 :
总结:
使用多线程能帮我们解决一个进程中同时执行对个不同的任务,提高了资源的利用率。但是也给CPU增加了负担,降低了进程中线程的执行概率,容易引发线程安全问题,出现死锁现象。所有线程不是开的越多越好!
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增加了负担,降低了进程中线程的执行概率,容易引发线程安全问题,出现死锁现象。所有线程不是开的越多越好!
相关文章推荐
- 一个使用多线程删除指定目录及子目录下所有指定文件的Java程序(源码)
- 如何使用Java编写多线程程序
- Java多线程使用及常用方法
- JAVA实现多线程的两种方法,及如何使用
- 5. 初学Java多线程:join方法的使用
- 如何使用Java编写多线程程序
- 转载:总结java中使用多线程锁的使用 、实用
- 如何使用Java编写多线程程序
- 使用JAVA建立稳定的多线程服务器
- Java【多线程知识总结(6)】使用Runnable接口创建多线程,处理同一个资源
- 如何使用Java编写多线程程序-Java基础-Java-编程开发
- jdk1.4 构建 java多线程,并发设计框架 使用列子(四)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(二)
- java多线程设计wait、notify、notifyall、synchronized的使用机制
- java多线程如何使用
- 不可以使用 Firefox 2.0 调试 Java HttpSession 多线程访问
- jdk1.4 构建 java多线程,并发设计框架 使用列子(三)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(六)
- 3. 初学Java多线程:使用Runnable接口创建线程
- Java多线程设计中的:wait/notify 使用