编写多线程应用程序

package cn.scxh.java.thread;
/*1.编写多线程应用程序,模拟多个人通过一个山洞的模拟。
这个山洞每次只能通过一个人,每个人通过山洞的时间为5秒,随机生成10个人,
同时准备过此山洞,显示一下每次通过山洞人的姓名。*/




//Person类  具有的属性是人的姓名,因为要记录每次通过山洞人的姓名。
//Person类 有没有方法呢 ?人要通过山洞,即人要调用过山洞这个方法。方法可以在Person类中,当然在山洞类中最好


public class Person {

private String name;


public Person(String name) {
super();
this.name = name;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


}




package cn.scxh.java.thread;




//Cave类中最重要的是过山洞这个方法,因为这个方法需要人去调用


public class Cave {
/*由于过山洞是共享数据必须加synchronized,可以将synchronized理解为一把锁
只有当目前这个人通过了下个人才能通过,避免一开线程,都用这条资源*/
public synchronized void crossCave(Person person){
//人正在通过山洞
//人休眠5秒
//人通过了山洞
System.out.println(person.getName()+"正准备通过山洞");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(person.getName()+"已经通过山洞");

}


}




package cn.scxh.java.thread;


public class PersonCave implements Runnable{


//开启线程
private Cave cave;
private Person person;

public PersonCave(Cave cave, Person person) {
super();
this.cave = cave;
this.person = person;
}


@Override
public void run() {
// TODO Auto-generated method stub
cave.crossCave(person);
}


}


package cn.scxh.java.thread;


public class TestPersonCave {




//测试类
public static void main(String[] args) {
// TODO Auto-generated method stub
Cave cave = new Cave();

String[] name = {"a","b","c","d","e","f"};
for (String string : name) {
Person person = new Person(string);

PersonCave pc = new PersonCave(cave,person);
Thread t1 = new Thread(pc);
t1.start();
}
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt Creator是一个集成开发环境(IDE),用于开发跨平台的GUI应用程序。通过使用Qt Creator,可以轻松地编写多线程聊天程序。 要编写多线程聊天程序,首先需要创建一个Qt项目并配置所需的库和依赖项。在Qt Creator中,可以选择创建一个新的Qt Widgets应用程序项目。 在程序中,可以使用QThread类创建多个线程,通过继承QThread类并实现run()函数,可以定义每个线程要执行的代码。例如,可以创建一个用于接收客户端消息的线程,以及一个用于处理服务器消息的线程。 在main函数中,可以实例化和启动这些线程,以便它们可以同时运行。可以使用信号和槽机制进行线程间的通信。通过发送信号和槽函数来传递消息和数据,可以实现线程之间的通信和同步。 在UI界面中,可以设计一个聊天窗口,包括发送消息的文本框和接收消息的文本框。通过连接槽函数来处理发送消息事件,将消息发送到服务器或其他客户端。 在接收线程中,可以使用Qt的网络模块,如QTcpSocket,来接收服务器或其他客户端发送的消息。通过连接槽函数处理接收到的消息,并将其显示在聊天窗口的接收消息文本框中。 通过使用Qt的多线程框架和网络模块,可以实现一个多线程聊天程序。这样,客户端和服务器可以同时执行各自的任务,并能够实时发送和接收消息。 总结起来,使用Qt Creator可以很方便地编写多线程聊天程序。通过创建多个线程、使用信号和槽进行线程间的通信、使用网络模块进行消息的发送和接收,可以实现一个功能完善的多线程聊天程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值