Thread创建线程
来源:互联网 发布:网络金融考试 编辑:程序博客网 时间:2024/06/06 00:43
1、 多线程的概念:多线程是实现并发控制的一种有效手段,线程是指程序运行的流程。
多线程是指可以同时运行多个程序块,是程序运行效率更高。
2、 一个进程包含多个线程;
线程是程序中的执行线程。Java 虚拟机允许应用程序并发多个执行线程。
3、 创建新执行线程有两种方法。一种方法是将类声明为Thread 的子类。该子类应重写Thread 类的run 方法。接下来可以分配并启动该子类的实例。如,计算大于某一规定值的质数的线程可以写成。
4、 创建Thread 线程的三个步骤:
- 定义类继承 Thread;
- 覆写 Thread 类中的run() 方法。目的:将自定义代码存储在run方法中;
- 调用线程的start() 方法,该方法有两个作用,启动线程,调用run()方法。
public class Customer extends Thread{ String name; public void run(){ for(int i=0;i<10;i++){ System.out.println(name+"\t"+i); } }}
public class UseCustomer{ public static void main(String args[]){ Customer m=new Customer(); m.name="a"; Customer m1=new Customer(); m1.name="b"; m.rum();//主线线程主线线程线程 m.start(); m1.Start(); }}
例子:窗口卖票
public class ccticket extends Thread{ String name; static int ticket=5;//在创建线程的时候,不建议用static public void run(){while(ticket>0){ System.out.println(name+"卖了第"+ticket+"票");}}}
public class Useccticket{public static void main(String args[]){ccticket c=new ccticket();ccticket c1=new ccticket();c.name="1号窗口";c1.name="2号窗口";c.start();c2.start();}}
会出现bug,线程本身的问题。
5、另一种创建线程的方法,声明实现Runable 接口的类。(推荐使用)
- 定义类实现 Runable 接口;
- 覆盖 Thread 类来建立线程对象,将线程要运行的代码放入到run() 方法中;
- 通过Thread 类来建立线程对象;
- 将 Runable 接口的子类对象作为实际参数传递给Thread 类的构造函数;
- 调用 Thread 类的Start() 方法开启线程并掉哦那个Runnable 接口子类的run() 方法。
public class Ticket implements Runable{private int ticket=1;public void run(){ while(ticket<6){show();}}public synchronized void show(){if(ticket<6){try{ Thread.sleep(10);}catch(Exception e){System.out.println(Thread.currentThread().getName()+"卖出去了第"+ticket+"票")}}}}
public class Useticket{public static void main(String args[]){Ticket t=new Ticket();new Thread(t).start();new Thread(t).start();}
6、 Runable 接口和Thread继承类实现多线程区别
- Runable 接口可以避免由于Java单季承的局限性,更适合多个相同程序代码的线程去处理同一资源情况,实现资源共享。
- 同步:一个多线程如果通过 Runable 接口实现,则意味着类中的属性被多个线程共享。
- 如果多个线程操作同一资源,就有可能出现资源是否同步问题。
- 在Thread 类之中可以发现有一个名为sleep(long millis) 的静态方法,此方法用于线程是休眠。(定义休眠的时间)
- 解决这样的问题,必须使用同步来解决
- 此线程完成后才可以继续进行
- 同步可以通过同步块或同步方法来完成。
阅读全文
0 0
- 使用Thread创建线程
- Thread创建线程
- 创建线程用Thread
- Thread类创建线程
- 用Thread类创建线程
- boost::thread编程-线程创建
- java创建运行线程Thread
- 用Thread类创建线程
- 线程创建Thread和Runnable
- Thread(线程的创建) 十八
- Thread和Runnable创建线程
- 用Thread类创建线程
- 用Thread类创建线程
- day-13-对线程【Thread、线程创建】
- boost::thread线程创建方式总结
- boost::thread线程创建方式总结
- boost::thread线程创建方式总结
- boost::thread线程创建方式总结
- 文本挖掘--文本特征选择-java实现
- 算法系列——Binary Tree Zigzag Level Order Traversal
- [面试题]猴子分桃子递归超简练代码
- Qt判断网络是否在
- yarn平台的简单运行过程和任务分配
- Thread创建线程
- 使用Requests库和BeautifulSoup库来爬取网页上需要的文字与图片
- 计算机网络知识点
- 多行文字超出部分显示省略号
- __attribute__((format(printf, a, b)))
- CSU-ACM2017暑期训练12-KMP D
- Java中的匿名内部类及其使用技巧
- node.js解决跨域问题
- 杂记(兼容IE浏览器)