`
cq520
  • 浏览: 166191 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java多线程应用开发(一)

阅读更多

       随话说万丈高楼平地起,在学习多线程开发之前,我们先来理解一些基本概念。

一,什么是线程?

线程(thread)是"进程"中某个单一顺序的控制流。也被称为轻量级进程。是程序执行流的最小单元,每个程序都至少有一个线程,如果程序只有一个线程,那么该线程就是程序本身。

二,线程与线程,线程与进程之间的关系:

一个进程可以包含多个线程,一个线程也可以创建或者撤销另一个线程,同一进程中的多个线程可以并发执行,线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈程序计数器为其执行上下文。

三,多线程的作用:

多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。

通过上面的描述相信大家对于线程已经有了初步的了解,下面就来用java代码实际演练,首先,多个线程之间怎么判断执行的先后顺序呢?除了默认的执行顺序之外,每一个线程其实都是可以通过设置优先级来控制线程的先后的先后执行的。JavaThread里面有一个setPriority的方法范围为110,默认值是5,数值越大优先级越高。

我们平时所写的程序如果没有新创建线程则一般都是单线程的,那么怎么写一个多线程的程序并判断它是不是同步执行多个方法的呢?看如下示例(泡茶程序):

publicclass Paocha extends Thread{

    //烧水

    publicvoid shaoshui(){

       try{

           //5秒钟的水

           System.out.println("开始烧水...");

           Thread.sleep(5000);

           System.out.println("烧水完成...");

       }catch(Exception e){

           e.printStackTrace();

       }

    }

    //洗杯子

    publicvoid wash(){

       try{

           for(int i=1;i<=10;i++){

              System.out.println("洗第"+i+"个杯子");

              Thread.sleep(1000);

           }

       }catch(Exception e){

           e.printStackTrace();

       }

    }

   

    publicvoid run(){

           shaoshui();

           wash();

        }

}

如果我们直接让这个线程启动,那么它肯定还是按单一方法的顺序执行的,另外要注意的是,我们要让一个线程启动应该是直接使线程start(),线程此时会自动执行它的run()方法,而不是简单的调用它的run()方法,不然这样也无法实现线程同步,如下修改的示例:publicclass Paocha extends Thread{

    String doSomething="";

 

    public Paocha(String doSomething){

       this.doSomething=doSomething;

    }

    //烧水

    publicvoid shaoshui(){

       try{

           //5秒钟的水

           System.out.println("开始烧水...");

           Thread.sleep(5000);

           System.out.println("烧水完成...");

       }catch(Exception e){

           e.printStackTrace();

       }

    }

    //洗杯子

    publicvoid wash(){

       try{

           for(int i=1;i<=10;i++){

              System.out.println("洗第"+i+"个杯子");

              Thread.sleep(1000);

           }

       }catch(Exception e){

           e.printStackTrace();

       }

    }

   

    publicvoid run(){

       if(doSomething=="water"){

           shaoshui();

       }

       elseif(doSomething=="wash"){

           wash();

       }

    }

}

我们再写一个类来启动它看一下效果:

publicclass MyThread {

    publicstaticvoid main(String args[]){

       Paocha shaoshui=new Paocha("water");

       Paocha wash=new Paocha("wash");

       shaoshui.start();

       wash.start();

    }

}

多线程编程是应用编程开发中的重点,在了解了基本的使用之后我们再继续深入。

 

分享到:
评论

相关推荐

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程应用实现示例

    总结,这个"java多线程应用实现示例"通过小球运动的模拟,深入浅出地展示了Java多线程的运用,包括线程创建、同步、通信和线程池管理等关键概念。学习这个示例有助于理解和掌握Java多线程编程,为实际项目开发中的...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    Java多线程的简单应用

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过...通过分析和实践提供的Applet示例,我们可以深入理解和掌握Java多线程的应用。

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

    java多线程进度条

    本主题将深入探讨如何在Java多线程环境下实现进度条功能。 首先,理解Java多线程的基本概念至关重要。Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,...

    java多线程分页查询

    通过对上述代码的分析可以看出,该方案充分利用了Java多线程技术的优势,通过预加载前一页的数据,大大提高了后续请求的响应速度。然而,在实际应用中还需要注意以下几点: - **线程池管理**:频繁地创建新线程可能...

    Java多线程技术及其在网络编程中的应用.pdf

    下面通过开发一个多用户在线聊天室的例子,来具体分析Java多线程在网络编程中的应用。 ##### 客户/服务器(C/S)结构 在这个聊天室应用中,采用了经典的客户端/服务器架构。服务器端负责处理用户的登录认证、消息...

    java多线程的应用事例

    Java多线程是Java编程中的重要概念,尤其在开发高效能和并发应用程序时不可或缺。本文将深入探讨Java多线程的应用实例,这对于初学者来说是一个很好的学习起点。 首先,我们来看"SimulateRailwayStation.java"这个...

    JAVAJAVA多线程教学演示系统论文

    《JAVA多线程教学演示系统》是一篇深入探讨JAVA多线程编程的论文,它针对教育领域中的教学需求,提供了一种生动、直观的演示方式,帮助学生更好地理解和掌握多线程技术。这篇论文的核心内容可能包括以下几个方面: ...

    汪文君JAVA多线程编程实战(完整不加密)

    《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...

    java多线程小游戏

    java多线程小游戏

    java多线程应用实战

    多线程在实际开发中有着举足轻重的作用,但在教科书中并没有学到,本文以mysql(支持任何数据库)插入数据和查询数据为例子,讲述了如何在几秒钟内疯狂插入几十万数据,在一个方法中如何同时运行多条SQL语句(效率比...

    Java 多线程 PPT

    Java语言内置了对多线程的支持,这使得开发多线程应用变得更加便捷。每个Java程序都有一个隐含的主线程,例如在应用程序中由main方法启动,在Applet中由浏览器启动。Java通过线程实现了系统的异步执行,使得程序能够...

    Java多线程技术精讲

    Java多线程技术是Java编程中的重要组成部分,它允许程序同时执行多个任务,...在实际开发中,结合《Java多线程编程核心技术_完整版 带书签目录.pdf》这样的学习资料,辅以实践,将有助于你更好地驾驭Java多线程的世界。

    java 多线程示例

    Java多线程是Java编程中的重要概念,尤其在开发高性能、高并发的应用中不可或缺。本示例旨在为初学者提供一个全面理解Java多线程的起点。通过学习这个实例,你可以掌握如何创建和管理线程,理解线程同步与通信的重要...

    java多线程.pdf

    假设我们需要开发一个简单的多线程应用程序,该程序有两个线程:一个是负责接收用户输入的UI线程,另一个是负责处理用户输入的处理线程。在这种情况下,我们可以使用以下步骤来实现: 1. **定义Runnable接口的实现...

    武汉理工大学Java多线程实验源码

    总结来说,这个实验源码涵盖了Java多线程的基础和应用,包括线程的创建、运行、同步、通信,以及网络编程和数据库操作。通过这些实验,学生可以深入理解Java并发编程的核心概念,并掌握实际开发中的多线程设计技巧。

Global site tag (gtag.js) - Google Analytics