// 過載物件的"+= / -="實現訪問加鎖,過載 "=" 實現訪問解鎖。從而實現互斥訪問物件。
// 互斥模組類
#pragma once
#include "stdafx.h"
// 用於實現互斥的模版類
template
class csyncparam
;// 開啟互斥等待
template
void csyncparam::setlock()
// 釋放互斥物件
template
void csyncparam::releaselock()
// 解鎖訪問物件
template
csyncparamcsyncparam::operator=(csyncparam& csp)
// 加鎖讀寫
template
csyncparamcsyncparam::operator+=(csyncparam& csp)
// 加鎖讀寫
template
csyncparamcsyncparam::operator-=(csyncparam& csp)
// 互斥的資料
template
void csyncparam::makedata(t t)
template
csyncparam::~csyncparam()
template
csyncparam::csyncparam()
//template
//handle csyncparam::m_hmutex;
// 主檔案
// sync.cpp : 定義控制台應用程式的入口點。
// #include "stdafx.h"
#include "syncparam.h"
#include "process.h"
#include
using namespace std;
// 執行緒處理過程
void threadproc(void * pparam);
#define sync_param_start(value_type) csyncparam<##value_type>
#define sync_l csyncparam<
#define sync_r >
// 宣告物件
sync_param_start(vector) cp;
//csyncparam> cp;
//csyncparam> * cy = new csyncparam>;
int _tmain(int argc, _tchar* argv)
// 填充資料
cp.makedata(vec);
// 開多個執行緒同時賣票
for (int i = 10; i >= 0; i--)
while (1)
sleep(10000);
printf("準備退出!");
return 0;
}//sync_param_start (vector) cy;
// 巨集拼接物件
sync_l vectorsync_r cy;
void threadproc(void * pparam)
if (vd.empty())
printf(「賣票編號:%2d 執行緒id:%d \n", vd.size(), getcurrentthreadid());
// 解鎖互斥結束
cp = cy;
sleep(10);
//cy->releaselock();
//cy->releaselock();}}
c 實現svm SVM演算法實現
前面我們介紹了svm演算法的原理,這裡通過python以及小例子來實現svm演算法。這裡主要介紹兩個例子,乙個例子通過調包實現svm,乙個例子通過程式設計實現。一 癌症資料集 資料來自國外某醫院癌症資料,資料量為100,劃分70條記錄用於訓練集,資料如下所示 圖中diagnosis result是癌...
c 實現佇列
主要是想聯絡一下c 中的模板怎麼使用,隨便複習一下佇列。佇列最基本的資料結構元素先進先出,這些就不多說了。注意 寫程式時copy建構函式和copy賦值函式的寫法。include includeusing namespace std templateclass queueitem queueitem ...
C 實現佇列
像棧一樣,佇列 queue 也是表。然而,使用佇列時插入在一端進行而刪除則在另一端進行,也就是先進先出 fifo 佇列的基本操作是enqueue 入隊 它是在表的末端 叫做隊尾 rear 插入乙個元素 還有dequeue 出隊 它是刪除 或返回 在表的開頭 叫做隊頭 front 的元素。同樣,佇列也...