C++11多线程(3)
创建、等待多个线程
创建多个线程时,最好使用vector与join()函数结合使用
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
void print()
{
cout << "hello world" << endl;...
C++11多线程(4)
死锁
1、死锁定义
如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的(Deadlock)。
2、死锁产生的四个必要条件
(1)互斥
(2)不可剥夺
(3)保持且请求
(4)循环等待
3、解决死锁的方法
(1)预防死锁,破坏死锁产生的四个必要条件之一;
(2)避免死锁,银行家算法;
(3)检测死锁,资源分配图;
(4)死锁解除;
...
C++多线程--线程同步临界区
1、线程同步
线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。
3、线程同步的方法
(1)临界区
(2)信号量
(3)互斥量
(4)事件
4、临界区
(1)临界区的作用,线程在执行代码时,将代码锁定,不允许其他线程执行,只有该线程离开后,其他线程才能使用这些代码;
(2)临界区的使用
...
C++多线程--线程同步信号量
1、信号量
信号量设置一个资源访问计数。当该计数值大于0的时候,该信号量对象为有信号状态,当该计数值等于0的时候,该信号量对象为无信号状态。
2、信号量的使用
(1)创建信号量
HANDLE CreateSemaphore(
LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,//安全属性
...
C++多线程--线程同步--互斥量
1、互斥量
互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。
2、互斥量使用
(1)创建互斥量
HANDLE CreateM(
LPSECURITY_ATTRIBUTES lpMutexAttibutes, //安全控制
BOOL bI...
C++多线程--线程同步事件
1、事件
事件是内核对象,多用于线程间通信,可以跨进程同步
2、事件使用
(1)创建事件
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTE SlpEventAttributes,//安全控制,一般直接传入NULL
BOOL bManualReset,//确定事件是手动还是自动
...
基于TCP的服务器端/客户端
1、TCP服务器端的默认函数调用顺序
socket()-->bind()-->listen()-->accept()-->read()/write()-->close()
2、函数详解
int listen(int sock, int backlog);
sock:希望进入等待连接请求状态的套接字文件描述符,传递的描述符套接字参数为服务器端套接字
back...
常用控件TextView与EditText
案例一
1. 事件监听(三种写法)
1.1 标签上直接绑定监听方法
public void xxx(View view)
1.2 创建监听器对象,组件再绑定监听器对象
1.2.1 匿名内部类
1.2.2 使用匿名内部类并定义成全局的属性
文本框(TextView)
2.1 简介
TextView直接继承View,作用就是在界面上显示文本(类似于Sw...
高级控件,自动提示,文本框与下拉列表
高级控件与低级控件区别
是否使用适配器
适配器种类和作用
2.1 种类
数组适配器 ArrayAdapter
new ArrayAdapter(this,R.layout.actv_style, names);
简单适配器 SimpleAdapter
也叫“并不简单的简单适配器”^_^
自定义适配器
2.2 作用
桥梁
展示
高级控件使用步骤
3...
struts的增删改
1.不直接跳页面,跳子控制器,因为路径问题和.action配置*
http://localhost:8080/T212_stuts_crud/sy/studentAction_list.action
2.修改与删除时用url标签生成地址: <s:url namespace="/sy" action=“studentAction_toEdit” var=“toEditUrl”>
<...
ccui.helper:doLayout
很简单的问题,ccui.helper是lua自己导出的方法,我们可以通过断点找到具体的function,这个doLayout就是其中一个,ccui.helper.doLayout(widget) 主动调用 实现子节点偏移 ,是相对父节点的,其实是为了控件自适应父节点大写而做的一个操作
用eclipes编译出apk的时候遇到的问题
在编译android工程生成apk时,一直报make.exe 拒绝访问,百度第一步发现设置cocos引擎目录:安全-编辑--完全控制中点击-允许,还是不行,最后继续查找,发现是杀毒软件开着,关闭杀毒软件,ok啦,菜鸟又升级了,哈哈
eclipes 编译生成apk的一些零碎问题
用elipse编译生成apk,首先cocos3.10安装1.8的jdk和adt,具体文件等待上传,安装好之后,cmd中查看java版本是否为1.8,具体:Java - version ,若不是,需要重新配置环境,具体可以网上搜索jdk安装与环境配置,配置好环境之后,安装elipse,具体安装包可以网上搜,之后打开安装的elipse,点击windows-》preferences-》java->co
eclipse 打包
环境Cocos2.2.3:
1.下载adt-bundle-windows-x86_64这里边有Eclipse和Android SDK ,这个很方便,因为Eclipse里Android的
SDK路径已经给你配置好了。(找不到官网下载路径就随便在一个网站写下载好了)
PS:1.注意下载的时候要找到自己操作系统对应的版本,32位-32,64-64.
2.之
lua fadeOut
我们实现淡出效果的时候会用到fadeOut,fadeOut其实是通过设置透明度来达到淡出的效果的,如果你每次都需要执行fadeOut,就需要在执行他之前设置透明度为255,quck3.3提供的方法是setOpacity(255)
菜鸟写代码的一些心得,不值钱的坑
我在写界面的时候创建了组件,同时将组件与界面绑定,为了实现组件内函数公用,于是我在用组件之前又初始化了组件,很蛋疼,界面元素找不到了,还自以为是的认为自己的代码没问题,最蛋疼的是姐姐我打了很多log,日志显示可以找到组件中的UI,纠结良久之后发现我重新new了一个对象,当然对象中的数据是空的,需要你重新加入才会有,同时你新new的对象已经不再和当前场景有瓜葛了,当然不会有当前场景的一些资源,这就是
今日推荐
周排行