jk's Blog

No Start No End


  • 首页

  • 归档

  • 分类

  • 标签

  • 搜索

【HTML5】Canvas 实现放大镜效果

发表于 2016-10-09 | 分类于 HTML5 | | 2,681 | 13

图片放大镜

效果


在线演示    源码

原理

首先选择图片的一块区域,然后将这块区域放大,然后再绘制到原先的图片上,保证两块区域的中心点一致, 如下图所示:

阅读全文 »

【软件】解决 win8/win10 中Windows Media Player 无法播放ipv6直播(MMS串流)

发表于 2016-09-13 | 分类于 软件 | | 72 | 1
  1. 打开控制面板,选择 程序
    阅读全文 »

【Pthreads】Pipeline Model(Assembly Line)示例

发表于 2016-04-26 | 分类于 Pthreads | | 2,396 | 11

前言

Pthreads 有几种工作模型,例如 Boss/Workder Model、Pileline Model(Assembly Line)、Background Task Model、Interface/Implementation Model,详细介绍可以参考 pthread Tutorial,这里给出一个流水线模型(Pipeline Model)的简单示例。在该示例中,主线程开启了两个子线程,一个子线程用来读取文件,一个子线程用于将结果写入文件,而主线程自身用来计算。

阅读全文 »

【Pthreads学习笔记】基本使用

发表于 2016-04-25 | 分类于 Pthreads | | 4,390 | 18

前言

与OpenMP相比,Pthreads的使用相对要复杂一些,需要我们显式的创建、管理、销毁线程,但也正因为如此,我们对于线程有更强的控制,可以更加灵活的使用线程。这里主要记录一下Pthreads的基本使用方法,如果不是十分复杂的使用环境,这些知识应该可以了。本文大部分内容都是参考自这里,有兴趣的可以看一下原文。

阅读全文 »

【C】解析命令行参数--getopt和getopt_long

发表于 2016-03-05 | 分类于 C | | 1,634 | 8

前言

在程序中一般都会用到命令行选项, 我们可以使用getopt 和getopt_long函数来解析命令行参数

getopt

getopt主要用来处理短命令行选项, 例如./test -v中-v就是一个短选项. 使用该函数需要引入头文件<unistd.h>, 下面是该函数的定义

1
int getopt(int argc, char * const argv[], const char * optstring);

阅读全文 »

【C】文件操作(二)

发表于 2016-03-04 | 分类于 C | | 2,959 | 13

前言

这里主要记录一下C对二进制的读写操作, 包括随机读取文件和写入文件

fseek 和 ftell

fseek
fseek主要用来移动文件指针, 它允许用户像对待数组那样对待一个文件, 可以直接将文件指针移动到任意字节处, 下面是它的函数原型:

1
int fseek ( FILE * stream, long int offset, int origin );

下面是个参数的含义

  • stream - 打开的文件指针
  • offset - 偏移量, 表示从起始点开始要移动的距离(起始点的选择由origin指定), 可以为正(向前移)、负(往回移), 也可以为零(保持不动).
  • origin - 用来指定起始点的模式, 可以使用下面定义的几个模式常量:
    1. SEEK_SET : 以文件开始位置作为起始点
    2. SEEK_CUR : 以文件指针当前所在的位置作为起始点
    3. SEEK_END : 以文件结尾作为起始点
阅读全文 »

【OpenMP学习笔记】更多指令和子句介绍

发表于 2016-02-26 | 分类于 OpenMP | | 1,481 | 7

指令

flush

flush指令主要用于处理内存一致性问题. 每个处理器(processor)都有自己的本地(local)存储单元:寄存器和缓存, 当一个线程更新了共享变量之后, 新的值会首先存储到寄存器中, 然后更新到本地缓存中. 这些更新并非立刻就可以被其他线程得知, 因此在其它处理器中运行的线程不能访问这些存储单元. 如果一个线程不知道这些更新而使用共享变量的旧值就行运算, 就可能会得到错误的结果.
通过使用flush指令, 可以保证线程读取到的共享变量的最新值. 下面是语法形式:

1
#pragma omp flush[(list)]

阅读全文 »

【OpenMP学习笔记】与运行环境交互

发表于 2016-02-26 | 分类于 OpenMP | | 1,521 | 7

Internal Control Variables

OpenMP标准定义了内部控制变量(internal control variables), 这些变量可以影响程序运行时的行为, 但是它们不能被直接访问或者修改, 我们需要通过OpenMP函数或者环境变量来访问或者修改它们, 下面是被定义的内部变量

  • nthread-var : 存储并行域的线程数量
  • dyn-var : 控制在并行域执行时是否可以动态调整线程的数量
  • nest-var : 控制在并行域执行时是否允许嵌套并行
  • run-sched-var : 存储在循环域(loop regions)使用 runtime 调度子句时的调度类型
  • def-sched-var : 存储对于循环域默认的调度类型
阅读全文 »

【应用】在线文件管理

发表于 2016-02-01 | 分类于 应用 | | 1,780 | 9

前言

该应用主要目的是为了在使用linux系统的时候,实现手机和电脑之间的文件传输。前台界面使用的是angular-filemanager, 后台使用的是Spring MVC, 可以下载该应用的war包, 放到tomcat中使用。程序对angular-filemanager的原始功能进行了精简, 同时做了一些更改。下面该应用的具体功能:

  • 文件上传下载(上传使用的是jquery-upload-file)
  • 手机扫码快速打开网页
  • 图片预览
  • 文本文件在线编辑
  • 文件/文件夹重名
  • 文件/文件夹删除
阅读全文 »

【OpenMP学习笔记】编译制导指令

发表于 2016-01-25 | 分类于 OpenMP | | 7,127 | 33

前言

OpenMP通过在串行程序中插入编译制导指令, 来实现并行化, 支持OpenMP的编译器可以识别, 处理这些指令并实现对应的功能. 所有的编译制导指令都是以#pragma omp开始, 后面跟具体的功能指令(directive)或者命令. 一般格式如下所示:

1
2
#pragma omp directive [clause [[,] clause]...]
structured block

阅读全文 »
1234
Zhang Jikai

Zhang Jikai

No Start No End

36 日志
13 分类
18 标签
RSS
GitHub
Links
  • Shuai's Blog
  • Xukai
  • Leiquan
© 2015 - 2019 Zhang Jikai
由 Hexo 强力驱动
主题 - NexT.Mist