1.java单线程的实现          一个任务一个人独立完成

public class SingletonThread {
@SuppressWarnings("static-access")
public static void main(String[] args) {
Thread t =Thread.currentThread();
t.setName("单例线程");
     //有1000条数据需要更新,由一个人来完成
for(int i=0;i<1000;i++){
       try {
          System.out.println(t.getName()+"正在执行"+i);
//t.sleep(); //线程休眠中
} catch (InterruptedException e) {
System.out.println("线程出现错误了!!");
}
} }
}

2.java多线程的实现                 一个任务多个人来同时进行并完成

①继承Thread类,并重写run方法

public class ThreadImpl {
public static void main(String[] args) {
     //这里也有1000条数据数据需要更新,就分3个人来进行完成
Thread t1=new ThreadTest("t1", 300);
Thread t2=new ThreadTest("t2", 300);
Thread t3=new ThreadTest("t3", 400);
t1.start();
t2.start();
t3.start();
}
} class ThreadTest extends Thread{
private String name;
private int ts;
public ThreadTest(String name, int ts) { this.name = name;
this.ts= ts;
} public void run() {
try {
//sleep(ms);
       for(int i=0;i<=ts;i++){
          System.out.println(name+"正在执行"+i);
       }
} catch (InterruptedException e) {
System.out.println("线程运行中断异常");
} System.out.println("名字叫"+name+"的线程开始休眠"+ms+"毫秒");
} }

②实现runnable接口,重写run方法

public class RunnableImpl {
public static void main(String[] args) {
RunnableTest r1=new RunnableTest();
Thread t=new Thread(r1);
t.start();
} } class RunnableTest implements Runnable{ @Override
public void run() {
// TODO Auto-generated method stub } }

这是一个线程模拟的售票系统:

class MyThread implements Runnable{

    private int ticket=10;  //10张车票

    public void run(){
for(int i=0;i<=20;i++){
if(this.ticket>0){
System.out.println(Thread.currentThread().getName()+"正在卖票:"+this.ticket--);
}
}
}
}
public class ThreadTicket{

public static void main(String[] args) {
//资源共享
MyThread mt=new MyThread();
new Thread(mt, "1号窗口").start();
new Thread(mt, "2号窗口").start();
new Thread(mt, "3号窗口").start(); }
}

【运行结果】:

1号窗口正在卖票:9
1号窗口正在卖票:7
2号窗口正在卖票:6
3号窗口正在卖票:5
2号窗口正在卖票:4
1号窗口正在卖票:3
1号窗口正在卖票:2
1号窗口正在卖票:1
3号窗口正在卖票:8
2号窗口正在卖票:10

JAVA单线程和多线程的实现方式的更多相关文章

  1. Java中的多线程的创建方式

    首先理清几个基本概念: 程序:为完成特定任务,用某种语言编写的一组指令的集合.即一段静态的代码(还没运行起来) 进程:是程序的一次执行过程,也就是说程序运行起来了,加载到了内存中,并占用了cpu的资源 ...

  2. java中创建多线程两种方式以及实现接口的优点

    多线程创建方式有两种 创建线程的第一种方式.继承Thread类 1.继承Thread类 2.重写Thread类中的run方法--目的将自定义代码存储在run方法.让线程执行3.调用线程的start() ...

  3. JAVA单线程以及java多线程的实现方式

    1.java单线程的实现 public class SingletonThread { @SuppressWarnings("static-access") public stat ...

  4. java归并排序,单线程vs多线程

    一.什么是归并排序 归并排序又称合并排序,它是成功应用分治技术的一个完美例子.对于一个需要排序的数组A[0..n-1],归并排序把它一分为二:A[0..n/2-1]和A[n/2..n-1],并对每个子 ...

  5. java 22 - 4 多线程的代码实现的方式1

    需求:我们要实现多线程的程序. 如何实现呢? 由于线程是依赖进程而存在的,所以我们应该先创建一个进程出来. 而进程是由系统创建的,所以我们应该去调用系统功能创建一个进程. Java是不能直接调用系统功 ...

  6. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  7. 牛客网Java刷题知识点之什么是进程、什么是线程、什么是多线程、多线程的好处和弊端、多线程的创建方式、JVM中的多线程解析、多线程运行图解

    不多说,直接上干货! 什么是进程? 正在进行中的程序(直译). 什么是线程? 就是进程中一个负责程序执行的控制单元(执行路径). 见 牛客网Java刷题知识点之进程和线程的区别 什么是多线程? 一个进 ...

  8. Java并发和多线程2:3种方式实现数组求和

    本篇演示3个数组求和的例子. 例子1:单线程例子2:多线程,同步求和(如果没有计算完成,会阻塞)例子3:多线程,异步求和(先累加已经完成的计算结果) 例子1-代码 package cn.fansuni ...

  9. Java IO学习笔记七:多路复用从单线程到多线程

    作者:Grey 原文地址:Java IO学习笔记七:多路复用从单线程到多线程 在前面提到的多路复用的服务端代码中, 我们在处理读数据的同时,也处理了写事件: public void readHandl ...

随机推荐

  1. svn中的trunk,branch和tags(转)

    转自:https://www.cnblogs.com/keyi/p/5953649.html  我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我 ...

  2. MySQL不支持事务处理的解决方法

    MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理. 在MySQL中,只有InnoDB存储引擎类型的数据表才能支持事务处理. 因此,如果想让MySQL支持事务处理,只要将 ...

  3. vue 项目 多选 问题

    近期 vue 项目用到多选功能,引用的elementUI的级联多选 Cascader,但是没有效果. 后来发现是elementUI版本问题,我们项目用的是2.7.2版本,版本太低. 后来 卸载了 重新 ...

  4. 【转】tomcat优化-有改protocol 和 缓存 集群方案

    tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...

  5. CSS制作红桃心

    这里主要用到了before与after属性之前之后 代码: <!DOCTYPE html> <html> <head> <meta charset=" ...

  6. luoguP2590 [ZJOI2008]树的统计 [树链剖分] [TLE的LCT]

    题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u ...

  7. 奇技淫巧之Delphi和JavaScript互通

    http://www.raysoftware.cn/?p=305 Delphi2010以后增加了新的RTTI信息,也就是通过RTTI可以在运行时获取/调用对象的公开成员或者函数. ScriptCont ...

  8. 经典sql题练习50题

    -- 1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 select a.* ,b.s_score as 01_score,c.s_score a ...

  9. URAL 1996. Cipher Message 3(KMP+fft)

    传送门 解题思路 因为要完全匹配,所以前七位必须保证相同,那么就可以把前7位提出来做一遍\(kmp\)匹配,最后的答案一定在这些位置里.考虑最后一位,可以把最后一位单独取出来,要计算的是最后一位相同的 ...

  10. C语言新手写扫雷攻略3

    界面绘制好后,雷数也布置了,接下来就是游戏的运行过程了,今天先不说具体过程,再来看看需要用到的辅助函数 先是简单的画红旗,鼠标右键的功能是画红旗,至此我们都是在使用函数自己绘图,效率是低,但有助于理解 ...