`
小小瑶
  • 浏览: 657 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • it_like: 第3点:this怎么会用完即释放呢? 第4点:其实反过来考虑更 ...
    类与对象

并发编程 多线程

 
阅读更多

【Abstract】

1.了解程序,进程,线程,多线程,并发编程的含义

2.多线程实例化   实现冰球简单弹跳功能


【Content】

1.程序:算法+数据结构,在计算机中以文件的形式存储

2.进程:操作系统中已经执行的任务,一个任务即一个进程,一般可认为exe文件。

3.线程:1)Thread(是计算机运行的最小单位)一个进程中有多个线程。

              2)线程的三种状态:就绪,阻塞,运行。

4.多线程(并发编程):1)多个线程同时进行,一个进程中分别分配空间给每个线程,线程与线程之间是相                                             互独立的,但线程与线程是相互共享资源的。

                                       2)这与单个线程不同,单个线程是顺序编程的,可能会引起阻塞,并发编程明显提高                                             了编程的效率。


【Code】
1.创建线程有两种方法
  1)继承Thread类,重写run方法
    

 public class MyThread extends Thread{ 

public void run() 
{ 
System.out.println("线程启动"); 
} 
} 

 

public class mainTest { 
public static void main(String[] args){ 
MyThread th=new MyThread(); 
th.start(); 
} 

 
  2)实现Runnable接口

public class RunnableTest implements Runnable{ 

public static void main(String[] args){ 
RunnableTest rt=new RunnableTest();//创建Runnable对象 
Thread th=new Thread(rt);//构造Thread对象 
} 

//线程运行入口 
public void run() { 
System.out.println(">>>线程运行啦!!!"); 

} 

} 

 

 

 3)多线程的简单实现(实现Runnable接口)

package cn.luoyao.f0201;

import java.awt.Graphics;

import javax.swing.JFrame;

public class BallFrame extends JFrame {

	/**创建一个冰球界面
	 * @param args
	 */
	ThreadDemo l = new ThreadDemo(this);
	public static void main(String[] args) {
		BallFrame bf = new BallFrame();
		bf.showUI();
	}

	/**
	 * 创建冰球界面
	 */
	public void showUI(){
		this.setTitle("冰球");
		this.setSize(500, 500);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		
		this.setVisible(true);
		new Thread(l).start();//创建Thread类对象,调用start方法
		}
		
	
	
	/**
	 * 实现重绘的方法
	 */
	public void paint(Graphics g){
		super.paint(g);
		System.out.print(l.getX()+","+l.getY()+"  ");
		g.fillOval(l.getX(), l.getY(), 50, 50);
	}
	

}

   测试类

package cn.luoyao.f0201;

import java.awt.Graphics;
import java.util.Random;

public class ThreadDemo implements Runnable{

	public int x;
	public int y;
	public int movex=5;
	public int movey=5;
	private BallFrame bf;
	private Random ran = new Random();
	
	
	/**
	 * 传参  
	 * @param bf
	 */
	public ThreadDemo(BallFrame bf){
		this.bf = bf;
	//随机赋值
			x = ran.nextInt(100);
			y = ran.nextInt(100);
		}
	
/**
 * 重写run方法
 */
	@Override
	public void run() {
		while(true){
			x +=movex;
			y+=movey;
			 
			//判断
			if(x>=450){
				movex = -movex;
			}else if(y>=450){
				movey = -movey;
			}
			else if(x<=10){
				movex = -movex;
			}else if(y<=10){
				movey = -movey;
			}
			
			bf.paint(bf.getGraphics());
		try { 
			Thread.sleep(50);    //每隔50ms画一次 
			} catch (InterruptedException e) { 
			e.printStackTrace(); 
			} 
		}
	}
/**
 * 取得x值
 * @return x
 */
	public int getX(){
		return x;
	}
	
	/**
	 * 取得y值
	 * @return y
	 */
	public int getY(){
		return y;
	}
	

}

 【summary】

1.对于传参   不是很熟练

2.对于判断    要考虑清楚所有可能出现的情况

 

分享到:
评论

相关推荐

    java 并发编程 多线程

    ### Java并发编程与多线程知识点详解 #### 1. 线程安全与锁定机制 - **确保线程安全**: 在Java并发编程中,确保线程安全是至关重要的。通常有三种方法来实现这一点: - 使用`synchronized`关键字:这是最基本的...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段05讲、采用多线程方式模拟银行排队叫号.mp4 │ 高并发编程第一阶段06讲、用Runnable接口将线程的逻辑执行单元从控制中抽取出来.mp4 │ 高并发编程第一阶段07讲、策略模式在Thread和Runnable...

    JAVA多线程并发编程

    Java并发编程是Java开发中的重要领域,特别是在高并发、高性能的应用场景中不可或缺。并发编程能够有效地利用多核处理器资源,提高程序的运行效率,优化系统性能。以下将详细阐述Java并发编程的一些关键知识点。 ...

    C#多线程开发之并发编程经典实例.zip

    本资源“C#多线程开发之并发编程经典实例”提供了丰富的实例,旨在帮助C#开发者深入理解并掌握多线程技术。以下是关于C#多线程和并发编程的一些关键知识点: 1. **线程基础**:线程是操作系统分配CPU时间的基本单位...

    java多线程视频教程(共七套)

    02、【中级原理专题】java并发编程多线程高级专题课程 03. 【中级原理】高并发编程原理和线程池精通教程 04、【高级原理】Java并发多线程编程基础原理与实战 05、【高级原理】【高级原理实战】Java并发编程与高并发...

    java并发编程实践 pdf

    根据提供的文件信息,“java并发编程实践 pdf”及“java并发编程pdf”的标题与描述,以及“java 并发编程 多线程”的标签,我们可以推断出这份文档主要讲解了Java语言中的并发编程技术,包括多线程的概念、实现方法...

    Java高并发编程,构建并发编程知识体系,提升面试成功率

    本课程将结合大量图示及代码演示,带你掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段(扩容,缓存,队列,拆分等),构建完整的并发与高并发知识体系,胜任实际开发中并发...

    Java_多线程与并发编程总结.doc

    Java多线程与并发编程是Java开发中至关重要的一部分,它涉及到如何高效地利用CPU资源,以实现程序的并行执行。在操作系统层面,多任务和多进程是通过分配不同的内存空间来实现的,而线程则共享同一进程的内存,这...

    iOS并发编程指南与多线程编程指南合集

    在iOS开发中,多线程和并发编程是关键的技术领域,它们允许应用程序同时处理多个任务,提高用户体验并优化系统资源的使用。以下是对标题“iOS并发编程指南与多线程编程指南合集”以及描述中提及知识点的详细解读: ...

    深入Java多线程和并发编程

    ### 深入Java多线程与并发编程 在当今高度发展的信息技术领域中,随着硬件技术的进步和软件架构设计的复杂化,多线程与并发编程成为提高程序执行效率、增强系统性能的关键技术之一。本篇文章将围绕Java多线程与并发...

    Cpp_Concurrency_In_Action(本书是基于C++11新标准的并发和多线程编程深度指南。),非扫描版

    《C++并发实战》是一本深入探讨C++11及后续标准中并发和多线程编程的权威指南。这本书详细阐述了如何利用C++的新特性来编写高效、可靠的并发程序,为开发者提供了全面的理论知识和实践技巧。 C++11引入了对并发编程...

    计算机科学+并发编程+多线程+高性能处理

    它以并发编程和多线程技术为核心,致力于解决高性能处理的需求。无论是开发者、计算机专业学生,还是对高并发多线程技术感兴趣的初学者,都能从中获得丰富的知识和实践经验。 该代码适用于各种需要高并发、多线程...

    java多线程并发编程知识导图笔记.xmind

    java多线程并发编程知识导图笔记.xmind

    Java 并发编程实战.pdf

    《Java并发编程实战》这本书是关于Java语言中并发编程技术的经典著作。它详细介绍了如何在Java环境中有效地实现多线程程序和并发控制机制。在Java平台上,由于其本身提供了强大的并发编程支持,因此,掌握并发编程...

    Netty多线程并发编程

    Netty多线程并发编程知识点总结 Netty多线程并发编程是指在Netty框架中使用多线程技术来实现高性能、高并发的网络编程。下面是关于Netty多线程并发编程的知识点总结: 一、 JAVA 内存模型与多线程编程 在Java中,...

    Android开发经验谈:并发编程(线程与线程池)(推荐)

    Android开发经验谈:并发编程(线程与线程池) Android开发中,线程和线程池是两个非常重要的概念。线程是Android开发中的一种基本单位,它可以帮助我们实现并发编程,提高应用程序的性能和响应速度。然而,线程也...

    C语言并发和多线程编程

    c语言入门 并发编程基础 线程同步机制 并发编程中的问题

    java线程与并发编程

    java线程与并发编程是java并发编程的盛典,绝对高清版

    Java并发编程实践多线程

    《Java并发编程实践》是一本深入探讨Java多线程编程的权威著作,它详细阐述了在并发环境下如何设计和实现高效、可靠的程序。这本书涵盖了Java并发编程的核心概念、工具和最佳实践,对于想要提升Java并发编程技能的...

Global site tag (gtag.js) - Google Analytics