JAVA之多线程(一)
来源:互联网 发布:西北大学网络教育 编辑:程序博客网 时间:2024/06/01 12:23
众所周知,一个人在思考学习的同时他的呼吸,身体的各机能都在正常运行,也就是在同一时间内干许多的事,这在JAVA中就被称为并发,而这其中的每一件事也被成为线程。
每一个线程完成一个功能切与其他线程并发执行,即被称为多线程。一个进程是包含有自身地址的程序,每个独立的程序都被称为进程。
在我们编程中,若需要一个进程同时完成多段代码的操作,就需要产生多线程。
下面就说一下JAVA中主要提供的实现JAVA中的两种方式
一.继承Thread类
下面上个栗子
public class ThreadTest extends Thread{ private int count = 10; public void run(){ while(true){ System.out.println(count+""); if(--count == 0){ return; } } }public static void main(String[] args){ new ThreadTest().start(); }}
运行出来的效果是:
在public void run(){}中写出你想要执行的任务
再通过主方法调用start()来启动执行任务。
二.实现Runnable接口
若需要继承其他类(并非Thread类)的同时还要使得当前类实现多线程,即可使用Runnable接口来实现。因为JAVA语言不支持多继承。
上栗子:
public class SwingYThread extends JFrame { /** * @param args */ private JLabel j = new JLabel(); private static Thread t; private int count = 0; private Container container = getContentPane(); public SwingYThread(){ setBounds(300, 200, 250, 100); container.setLayout(null); URL url = SwingYThread.class.getResource("/java001.png"); Icon icon = new ImageIcon(url); j.setIcon(icon); j.setHorizontalAlignment(SwingConstants.LEFT); j.setBounds(10, 10, 200, 50); j.setOpaque(true); t = new Thread(new Runnable(){ public void run(){ while(count <= 200){ j.setBounds(count, 10, 200, 50); try{ Thread.sleep(1000); }catch(Exception e){ e.printStackTrace(); } count += 10; if(count == 200){ count = 10; } } } }); t.start(); container.add(j); setVisible(true); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub new SwingYThread(); }}
效果图:
此栗子先在类的构造方法中创建Thread实例,同时以Runnable对象作为Thread类构造方法的参数,然后用内部类实现run()方法。run()方法中主要是改变了图标的横坐标位置从而实现滚动。
阅读全文
0 0
- JAVA之多线程(一)
- java基础之多线程(一)
- java之多线程研究(一)
- Java之多线程(一)
- JAVA之多线程(一)
- java高级之多线程(一)
- Java之多线程(一)
- Java基础笔记之多线程(一)
- java专题(一)之多线程
- Java之多线程学习(一)
- Java中的多线程(一)之多线程创建
- Java回炉之多线程(一)
- JAVA知识之多线程(一):基础知识
- java多线程(一)之多线程基础
- java之多线程(一)进程和线程的区别
- Qt之多线程(一)
- C++之多线程 - 一
- 【Java】Java之多线程
- hdu3874-Necklace 线段树+离散化
- hibernate的list映射和map映射
- 解决A master URL must be set in your configuration错误
- grep详解
- HTML标签
- JAVA之多线程(一)
- springmvc项目创建
- 不同系统下微信 onMenuShareTimeline 调用
- Android下的USB Host介绍和开发
- MAC下解决sudo: /etc/sudoers is owned by uid 501, should be 0的问题
- linux 下的nc使用
- POJ2084—Game of Connections(c++高精度)
- 让开发者更值钱的方法:培养稀缺
- Android 如何在插入外接物理键盘时还能显示软键盘