java多线程的程序设计 5C

阅读和修改一个球的代码程序,完成多球的功能:
Write a program that bounces balls inside a panel.The ball should begin moving with a mousePressed event. When user clocks the mouse, a ball should be added. When balls hits the edge of the panel,it should bounde off the edge and continue in the opposite direction.
The ball location should be updated using Runnable.
GUI as follows:图片说明
程序如下:
import java.util.Random;

public class Ball implements Runnable {
private int x; // horizontal position of ball
private int y; // vertical position of ball
private int dx; // change in horizontal position of ball
private int dy; // change in vertical position of ball
private final int MAX_X = 200; // horizontal edge of JPanel
private final int MAX_Y = 200; // vertical edge of JPanel
private static final Random generator = new Random();

public Ball(int xPos, int yPos) {
dx = generator.nextInt(5) + 1; // change in x (1-5 pixels)
dy = generator.nextInt(5) + 1; // change in y (1-5 pixels)
x = xPos; // set ball to horizontal position of mouse press
y = yPos; // set ball to vertical position of mouse press
}

// bounces ball perpetually until window is closed
public void run() {
while (true) {// infinite loop {
try {
Thread.sleep(20); // sleep for 20 milliseconds
}
// process InterruptedException during sleep
catch (InterruptedException exception) {
exception.printStackTrace();
}

     x += dx; // determine new x-position
     y += dy; // determine new y-position

     // if bounce off top or bottom of JPanel
     if (y <= 0 || y >= MAX_Y - 10) {
        dy = -dy; // reverse velocity in y direction
     }

     // if bounce off left or right of JPanel
     if (x <= 0 || x >= MAX_X - 10) {
        dx = -dx; // reverse velocity in x direction
     }
  } 

}

// get horizontal position of ball
public int getX() {
return x; // return x value
}

// get vertical position of ball
public int getY() {
return y; // return y value
}
}

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class BallPanel extends JPanel {
private Ball blueBall; // bouncing ball
private ExecutorService threadExecutor; // for running Ball runnable
private JFrame parentWindow; // parent window of JPanel
private final int MAX_X = 200; // horizontal edge of JPanel
private final int MAX_Y = 200; // vertical edge of JPanel

public BallPanel(JFrame window) {
parentWindow = window; // set parent window of JPanel

  // create ExecutorService for running ball runnable
  threadExecutor = Executors.newCachedThreadPool();

  // anonymous inner class handles mouse events
  this.addMouseListener(
     new MouseAdapter() {
        public void mousePressed(MouseEvent event) {
           createBall(event); // delegate call to ball starter
           RepaintTimer timer = new RepaintTimer(parentWindow);
           threadExecutor.execute(timer);
        }
     } 
  ); 

}

// create a ball if no ball exists and set it in motion
private void createBall(MouseEvent event) {
if (blueBall == null) {// if no ball exists {
int x = event.getX(); // get x position of mouse press
int y = event.getY(); // get y position of mouse press
blueBall = new Ball(x, y); // create new ball
threadExecutor.execute(blueBall); // set ball in motion
}
}

// return minimum size of animation
public Dimension getMinimumSize() {
return getPreferredSize();
}

// return preferred size of animation
public Dimension getPreferredSize() {
return new Dimension(MAX_X, MAX_Y);
}

// draw ball at current position
public void paintComponent(Graphics g) {
super.paintComponent(g);

  if (blueBall != null)  {// if ball exists {
     g.setColor(Color.blue); // set color to blue
     g.fillOval(blueBall.getX(), blueBall.getY(), 10, 10); // draws
  }

}
}

import javax.swing.JFrame;

public class BouncingBall extends JFrame {
private final BallPanel ballCanvas; // JPanel in which ball bounces

public BouncingBall() {
ballCanvas = new BallPanel(this); // create new BallPanel
add(ballCanvas); // add BallPanel to JFrame

  pack(); // make window just large enough for its GUI
  setVisible(true); // show window

}

public static void main(String args[]) {
BouncingBall application = new BouncingBall();
application.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

import javax.swing.JFrame;

public class RepaintTimer implements Runnable {
private final JFrame repaintComponent;

public RepaintTimer(JFrame frame) {
// specify component to be repainted
repaintComponent = frame;
}

public void run() {
while (true) {
try {
Thread.sleep(20);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}

     repaintComponent.repaint(); // repaint the component
 }

}
}

4个回答

老哥,这个问题并不适合使用线程池.线程池是为了完成大量的执行时间短的任务,避免频繁地创建和销毁线程二设计的.
而你的问题,若每个球的运行是一直持续的,那么它并不是执行时间短的任务,需要为其单独创建线程.

实现方法:

  • 多线程,每个线程负责计算单个球的运动轨迹
  • 主线程负责读取所有球的当前位置,并更新UI显示.

线程太多影响性能,统一用一个线程就好,刷新UI用主线程

线程太多影响性能,统一用一个线程就好,刷新UI用主线程

每个小球就是一个线程,生成出来,然后,随机函数写个,随机落在图上各个地方。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java多线程龟兔赛跑问题

public class RabbitAndTurtle extends Thread{ public int num; public static boolean flag = false; public RabbitAndTurtle(String name){ super(name); } public void run(){ while(num<100){ if(flag){ break; } if(Thread.currentThread().getName().equals("rabbit")&&Math.random()<=0.3){ num = num+2; System.out.println(Thread.currentThread().getName()+"跑了"+num+"米"); }else if(Thread.currentThread().getName().equals("turtle")&&Math.random()>0.3){ num = num+1; System.out.println(Thread.currentThread().getName()+"跑了"+num+"米"); }else{ Thread.yield(); } } //System.out.println("over"); if(!flag){ flag = true; System.out.println(Thread.currentThread().getName()+"win!"); } } } class Race{ public static void main(String[] args) { RabbitAndTurtle t1 = new RabbitAndTurtle("turtle"); RabbitAndTurtle t2 = new RabbitAndTurtle("rabbit"); t1.start(); t2.start(); } } 用了两次flag判断有什么用 麻烦详细一些 谢谢

java多线程 读取队列数据,减少耦合性怎么做?

本人不太擅长多线程,但最近因为工作需要,使用到了,所以来求助了,需求这样的:要固定创建线程池跑线程,同时访问数据进来了后加入队列,线程去读取队列后处理程序,这样使访问数据和线程耦合性降低,彼此减少影响。这个代码怎么写,谁能给个demo,知道的别写个大概,写详细点,谢谢了。(我原来是来一个访问就new一个线程处理,老大说这样不好,就提了这样的要求)

java多线程解决龟兔鸡赛跑

场景如下。兔子、乌龟和公鸡进行赛跑,其中兔子每秒0.6米的速度,每跑2米休息3秒;乌龟每秒跑0.2米,不休息;公鸡每秒1.2米,每跑5秒需要吃一条虫子,耗时2秒。当其中一个跑到终点后其他动物个不跑了,比赛结束;比赛道路长20米。采用多线程技术模拟该比赛过程。 1、创建Java项目工程 2、采用Java多线程技术实现,合理设计线程的实现方式 3、要求创建测试类,在主函数启动该比赛的模拟线程 4、启动后每个动物使用一个线程,打印每个线程的id,并为线程设置上对应的 名称,比如公鸡的线程名称为 公鸡 5、使用继承技术,创建动物类,乌龟、兔子和公鸡需要从动物类继承 6、控制台每隔一秒打印一次每个动物当前共计跑了多少米 7、控制台能够打印兔子每次开始休息的时间,时间格式要求按照年月日时分 秒的格式输出 8、其中一个动物到达终点后,其他动物停止跑动,其它线程死亡 9、在控制台每隔一秒打印一次 三个动物一共跑了多少米 10、比赛结束后,把乌龟、兔子、公鸡线程对象,存入到List集合中 11、对List集合按照每个对象用的总时间进行排序 12、对List集合排序后并在控制台打印跑的总长度,用的总时间和比赛的名次 13、代码编写规范,注释全面

基于多线程端口扫描器 java

点击运行可以出现扫描窗口,并且不报错,点击扫描按钮以后,窗口消失,仍然不报错,求大神指点![图片说明](https://img-ask.csdn.net/upload/201610/07/1475825931_817671.png)![图片说明](https://img-ask.csdn.net/upload/201610/07/1475825964_554123.png)

java 关于类似售票系统的多线程并发 的问题

本人对多进程和多线程不大了解,还请各位高手解答下,先谢了。问题如下: 1.多线程的并发,我查了下资料,一般解释的是:一个进程可以包含多个线程,一个线程完成一个功能,这样,进程执行的时候,它包含的多个线程可以看成同时执行。 那多线程的并发,可不可以有另外的理解:如果这时的某个进程只有一个线程,那么,同时有多个类似的进程同时启动,这时是不是就产生了多个进程下要同时完成相同任务的多个线程,这算不算多线程的并发? 下面拿售票系统举例说明下, 2.像售票系统,应该就干了一件事,就是售票(包括查询),java实现的时候是不是就是一个线程?即一个进程对应一个线程。 3.这时,同一个人同一台电脑上,打开A浏览器买票,然后又打开B浏览器买票,是不是相当于有2个进程(不是线程)? 4.那售票系统的多线程并发 ,可不可以理解为多进程的并发?

java写多线程-同步访问使用 synchronized

java写多线程-同步访问 (10分) 现已有Account类,拥有 属性: private int balance 方法: 相应的getter方法。 要求为该类编写: void deposit(int money) //存钱,在余额的基础上加上money void withdraw(int money) //取钱,在余额的基础上减去money 注意: 取钱时如果balance<0的时候,会抛出异常。在多线程情况下,如只有一个存钱的线程,但是有多个取钱的线程,很可能会抛出异常。 需要编写完整的deposit方法与withdraw的前半部分代码解决该问题。 裁判测试程序: import java.util.Scanner; //这里是已有的Account类前半部分的代码 /*这里是deposit代码*/ /*这里是withdraw代码的前半部分*/ if(balance<0) //这里是withdraw代码的后半部分。 throw new IllegalStateException(balance+""); } /*系统已有代码,无需关注*/

自己写的Java的简易聊天程序,测试中,怎么搞成能连两个客户端的(最好用多线程)?

希望只在服务端改动,相关代码如下: 服务端: ``` package cheat; import java.io.*; import java.net.*; import java.awt.*; import java.awt.Button; import java.awt.event.*; public class CheatServer { public static void main(String[] args) { new MyFrame("服务端"); } } class MyFrame extends Frame{ static boolean judge=true; DataInputStream dis=null; MyFrame(String s){ super(s); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ try { dis.close(); } catch (IOException err) { err.printStackTrace(); } setVisible(false); System.exit(0); } }); setLayout(new BorderLayout()); setBounds(200,200,250,300); TextArea tr=new TextArea(); tr.setEditable(false); Button b=new Button("终止"); Panel p=new Panel(); p.setLayout(new FlowLayout(FlowLayout.CENTER)); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ee){ judge=false; tr.setText("服务终止\n"); try { dis.close(); } catch (IOException e) { e.printStackTrace(); } } }); p.add(b); add("North",tr); add("South",p); setVisible(true); try { ServerSocket ss=new ServerSocket(6666); while(judge){ Socket s1=ss.accept(); tr.append("用户接入成功!\n"); dis=new DataInputStream(s1.getInputStream()); while(judge){ String str=dis.readUTF(); System.out.println(str); } } } catch (IOException er) { tr.setText("服务出错!"+" "); System.out.println(er.getMessage()); } } } ``` 客户端(测试参考,不希望改动): ``` package cheat; import java.net.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.awt.Button; public class CheatClent{ public static void main(String[] args){ new MyFreame("客户端"); } } class MyFreame extends Frame{ Socket client=null; DataOutputStream dos=null; MyFreame(String s){ super(s); setBounds(200,200,400,500); setLayout(new BorderLayout()); TextArea tr=new TextArea(); tr.setEditable(false); TextField tf=new TextField(); tf.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { String str=tf.getText().trim(); tr.append(str+"\n"); tf.setText(""); try { dos=new DataOutputStream(client.getOutputStream()); dos.writeUTF(str); dos.flush(); } catch (IOException e) { tr.setText("输出异常!\n"); } } }); add("North",tr); add("South",tf); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ try { dos.close(); } catch (IOException e1) { e1.printStackTrace(); } setVisible(false); System.exit(0); } }); setVisible(true); try { client=new Socket("127.0.0.1",6666); tr.setText("连接成功!\n"); } catch (IOException er) { tr.setText("连接出错!\n"); } } } ```

JAVA传参的问题 如何让多个线程可以调用一个参数

先贴出代码 private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 01234) { Bundle bundle = msg.getData(); String s = bundle.getString("e1"); System.out.println(s); Toast.makeText(MainActivity.mactivity, s, Toast.LENGTH_SHORT).show(); } ``` ``` 在外部类A里面用handler接收了其他函数传来的消息然后放在String s 里面,现在想在主类mainactivity里面调用到这个s的值要怎么做?我已经试过把String s定义成静态方法了是不行的因为我定义的时候 public static String s = "";然后再handler里面赋值,调用的时候还是会调 s = ""的这个空值 而且我觉得在程序里面最好还是少用static 定义变量好吧。 请问这个要怎么做才能实现调用呢?谢谢了!还望指点!!!

java多线程的一个简单问题

``` public class Demo6 { public static void main(String[] args) { Thread6 r = new Thread6(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); } } class Thread6 implements Runnable { int ticket = 100; @Override public void run() { while(true) { if(ticket>0) { try { Thread.currentThread().sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"卖。。。"+ticket--); } else { break; } } } } ``` 为什么加了中间的那一段sleep,就出现一定数量的重复卖票,而不加就基本不会出现?输出的时候读到的不应该都是最新的ticket值吗? 如果在输出语句下加一段sleep紧接着ticket再减1,可以理解会大量重复,但是sleep放在上面为什么也会重复呢?

java编一个多线程气泡屏保

要让气泡可以自己生成,并且有碰撞检测,没有什么思路,有没有大神教教我

有没有大神说下多线程在实际开发中怎么用

# 看完多线程,虽然能看懂代码,但是始终不能明白多线程的实际应用,求点醒!!!****

java多线程问题

有这样一个问题,想请教一下大家: 我有一个导出Excel文件的功能,导出前需要查询并统计几百万的数据,统计成三条记录后再最后写入excel。 我想使用多线程提高资源的使用率来提高系统的效率,不知道是否可行?如果可行这个多线程的程序该怎么设计?是否该用单例模式?

多线程直接继承Thread类方式设计一个线程例子,在例子中构造4个线程对象实现对同一数据类对象进行操作

多线程直接继承Thread类方式设计一个线程例子,在例子中构造4个线程对象实现对同一数据类对象进行操作(数据初始值为0),其中线程对象1对数据执行+10的操作,线程对象2对数据执行+20的操作, 对象3对数据执行乘以3的操作,线程对象4对数据执行除以4的操作,请考虑线程同步,保证数据操作的正确性。请提供程序代码以及运行结果截图

多线程同步银行多账户取钱

最近一直在想一个多线程的问题,举个例子 比如javaweb银行项目,同时两个人在异地个存取200元如何保证不出差错。 两个人在异地同时登陆的话其实在系统中是属于两个数据相同的对象(spring+hibernate)如果使用对象的排它锁也不会起作用。这种需求应该怎样实现那?

linux多线程编程中如何等待过个线程退出

linux多线程编程中,如果线程A创建了线程B,我知道用pthread__ join可以令线程A 阻塞然后等待线程B的退出。如果线程A创建了三个线程B,C,D,执行完的先后顺序不知。想让A必须等待三个线程都退出后再退出,应该怎么做? 连用pthread__join三次吗???但是第一次用了pthread__join后,A不就阻塞了吗?

java Socket长连接读取日志程序设计

需求:读取服务端日志,读取到特定的值做特定的操作提示 ,只要开启就一直读取 目前是写的Socket死循环读取,但当特定的值多了之后,再服务端日志中同时出现几个特定的值,那运行效率就会变低(已经发生过,让人以为是延迟),请问这种程序如何设计 目前的思路是:读到特定的字符重启一个线程去处理相关业务,这样多了也就不会发生这种延迟问题,但我对多线程,并发 这块不是很熟悉,特别是处理共享资源的时候,一个不小心。就会出问题,想问下各位有没有更好的方法,比如有已经封装好的框架,或者有没有比较全面的资料或博客连接,我这边学习一下,因为网上的资料知识大部分比较碎片化了,谢谢

用java如何编写翻牌小游戏

用java编写翻牌小游戏,点击一张牌,它周围的牌都会翻过来,直到完全翻过来,求源代码

java后端使用线程池进行(modbus协议)串口通信的编程,并且需要处理大量的数据量?

简单的表述一下这个程序的主要功能吧。 这个程序主要是对500个电流表头进行实时数据的监控,每100个电流表头为一组,通过一根串口线进行通讯,软件要实现的功能是循环的去读取这100个设备的电流数据。读取的时间是10s。意思是100ms读取完一个电流表头的数据,这条数据里存了这100ms内的100条电流数据。500个电流表头存一天的数据就是4亿3200万条数据,要求存一个月。 上述就是整个项目要完成的功能,在这个项目中遇到了两个难以解决的问题。 1.java串口通讯的延时,10s内去读取100个设备的数据,至少丢50条数据。后来发现,java从发送指令到监听到数据返回的时间大概在150ms到300ms之间,尝试了多种方法也无法解决。 2.大量的数据存储,根据计算,1天的数据量在4亿3200万条左右,这个数据怎么存到数据库中才能保证查询不会太过卡顿。并且,要存30天的数据。数据库的选择,数据结构的设计等。

Java语言模拟实现一个火车站售票系统,要用到2个线程模拟2个售票员,买票的任意

Java语言模拟实现一个火车站售票系统,要用到2个线程模拟2个售票员,买票的任意

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐