`
文章列表

单链表

#include<iostream> #include<conio.h> #include <malloc.h> //定义节点 typedef char ElemType; typedef struct Node{ ElemType data; struct Node *next; } LinkList; /* *将链表初始化,使得L指向一个头结点,这个头结点数据项为空 */ void InitList(LinkList *&L){ L=(LinkList *)malloc(sizeof(LinkList ...
函数 1、关于返回值 函数的返回类型可以是内置类型(int、double)、复合类型(int&、string*)、还可以是void。不能返回数组或者函数,但可以返回指向数组的指针或指向函数的指针。 当函数返回非引用类型时,将函数的返回值复制给临时对象。这时,返回值可以是局部对象,也可以是求解表达式的结果。 当函数返回引用类型时,它返回的是对象本身而不是复制返回值。所以千万不要返回指向局部的变量的引用。 以下是正确返回引用类型     const string &shortString(const string &s1,const string &s2 ...
  数组     数组也是存储单一数据类型对象的容器,与vector相比,它的长度固定,也没有获取长度的操作。现代C++多用vector代替数组。 数组的维数必须用常量表达式定义。非const变量以及运行阶段才能知道值的const变量都不能定义数组的维数。例如:     const unsigned buf_size=512,max_files=50;     int staff_size=27;     const unsigned sz=get_size();    //直到运行
main函数        唯一被操作系统显示调用的函数。 返回类型为int,返回值一般是一个状态指示器,0往往表示成功执行完毕,其它非0都有os指定的含义。 main函数的参数可以是空,也可以将字符串数组传入。 int main(int argc,char *argv[]) int main(int argc, char **argv) 例如:main位于prog中,执行prog -d -o ofile data0,则argv[0]=”prog”,argv[4]=”data0”。   #include <iostream> #include <asser ...
Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。 1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data/<package>/databases/的文件夹下,一个文件就是一个数据库。 2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。 3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。   android平台下操作数据库的的相关类 1、SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一 ...

字符串复制

#include "iostream.h" #include "assert.h" #include "string.h" char* strcopy(char* strDest,const char* strSrc); int main(){ char* s="hello,Miss!"; char str[20]; int len=strlen(strcopy(str,s)); cout<<str<<" "<<len<& ...

文件复制

#include "stdio.h" int main(int argCount, char *argValue[]){ FILE* srcFile=0; FILE* desFile=0; int ch=0; if(argCount!=3){ printf("Usage:%s sourcefile destinationfile\n",argValue[0]); }else{ if((srcFile=fopen(argValue[1],"r" ...
    Oracle中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在Oracle中非常重要。Oracle的用户可以用CREATE USER命令来创建。其语法是:     语法结构:创建用户         CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]     语法解析: LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登           录进行数据库操作。            代码演示:创 ...
    本地网络服务名,即客户端与服务器的连接字符串,本地网络服务名是客户端的配置,Oracle客户端安装后,可以使用客户端自带的网络配置向导(Net Configuration Assistant)进行配置:    1、启动Net  Configuration Assistant。选择“本地Net服务名配置”选项。    2、选择“下一步”,本步骤可以对本地网络服务名进行添加,删除,测试是否正常连接等操作,选择“添加”选项。    3、点击“下一步”,填写服务名,该服务名就是Oracle安装时,为数据库取的全局数据库名(如orac)。    4、点击“下一步”,选择服务需要的协议,默认是TCP ...
    队列以一种先进先出的方式管理数据。如果你试图向一个已经满了的阻塞队列中添加一个元素,或是从一个空的阻塞队列中移除一个元素,将 导致线程阻塞。在多线程进行合作时,阻塞队列是很有用的工具。工作者线程 ...
一个竞争的例子:下面的程序是模拟一个有若干账户的银行,每个账户随机地向其他账户转钱。 bank.java有若干账户,账户之间可以相互汇钱。 public class Bank { private final double[] accounts; /* * Construct the bank * @param n the number of the accounts * @param initialBalance the initial balance of each account ...
一、线程状态: 1、新状态:线程对象已经创建,还没有在其上调用start()方法。 2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态。在线程运行之后或者从阻塞、等待或睡眠状态回来后,也返回到可运行状态。 3、运行状态:线程调度程序从可运行池中选择一个线程作为当前线程时线程所处的状态。这也是线程进入运行状态的唯一一种方式。

线程中断

    博客分类:
  • java
当run方法返回或者出现了方法中没有捕获的异常,线程将终止。 Interrupt方法可以用来请求终止线程。当对一个方法使用interrupt方法时,线程的中断状态被重置。中断状态是每一个线程的boolean标志,每个线程应该不时的检查这 ...
每一个任务称为一个线程,同时可以运行一个以上的程序称为多线程程序。 多线程与多进程本质的区别在于每个进程拥有自己的一套变量,而线程则共享数据。与进程相比,线程更轻量级,创建撤销一个线程比启动新进程容易的多。 以下程序中,当点击start后有一个小球开始在弹跳,但这个程序是一个单线程的,当球跳动时,点击close,程序不会结束,因为线程被球弹跳所占用,无法马上响应close。 Ball.java记录了运动的小球的坐标(x,y),并且有move方法将小球移动到下一个位置。   import java.awt.Color; import java.awt.Graphics; import ...
Global site tag (gtag.js) - Google Analytics