可能的重复:
堆栈增长方向
堆栈是向上还是向下增长?
大家好,
我怎样才能知道机器的堆栈是否在C内存中增长或减少.更重要的是,哪个更好:堆栈增长的系统还是堆栈增长的系统?
以下逻辑工作???
void sub(int *a)
{
int b;
if (&b > a) {
printf("Stack grows up.");
}
else
{
printf("Stack grows down.");
}
}
main ()
{
int a;
sub(&a);
}
Run Code Online (Sandbox Code Playgroud)
我的意思是这个表达式在C中有效
if (&b > a)
Run Code Online (Sandbox Code Playgroud) 比方说,我有两个函数,里面有随机代码,而且基于用户的系统(慢,中,或快),没有办法告诉这两个函数需要多长时间才能完成,所以使用的setTimeout是function2仅在 function1完成后尝试开火时不实用.
你怎么可以用jQuery.deferred做function2火后,才 function1不管时间要求是什么,并考虑到两个功能都100%无jQuery的,里面还没有jQuery代码的功能,因此完全未观察到的jQuery?最重要的是,这些函数可能包含jQuery方法.css(),这些方法没有时间关联,并且在旧计算机上运行速度较慢.
我如何确保function2不会同时执行,就像function1我这样称呼他们:
function1(); function2();
Run Code Online (Sandbox Code Playgroud)
用$.deferred?除了那些有关的任何其他答案$.deferred也欢迎!
ADDED 3月20日: 如果function1()是一个lambda函数,根据用户输入,该函数可能有也可能没有异步调用,并且无法判断该函数将执行多少操作,该怎么办?它是一个函数,你不知道接下来会发生什么,但无论如何,你仍然希望function2只有在完成lambda函数(function1)的所有操作后才能执行,无论如何只要异步方面完成,它就需要很长时间.怎么能实现这一目标?
3月22日增加: 所以我想我做的唯一方法就是将匿名函数作为回调函数传递给异步函数,这些函数在完成后执行回调,或者创建事件监听器,这些函数将执行你想要的事件终于被触发了.
实际上没有任何方法可以在两个单独的行上执行异步调用并按顺序触发它们,而无需在包含所述函数的框架内手动构造机制(事件处理程序)来处理其操作的实际执行.
这些类型的机制的一个很好的例子是jQuery的.queue()方法和$.Defferred对象.
下面的答案以及阅读jQuery的API .queue()和使用$.Deferred有助于澄清这一点.
Tgr在下面给出了一个很好的例子,说明如何使用jQuery的$.Deferred对象创建自定义可链接函数,而自定义函数本身并不一定要在其中包含任何jQuery代码,这正是我想要的.
这是交易.我的应用程序有很多线程做同样的事情 - 从大文件(> 2gb)读取特定数据,解析数据并最终写入该文件.
问题是,有时可能会发生一个线程从文件A读取X并且第二个线程写入同一文件A的X.会出现问题?
I/O代码对每个文件使用TFileStream.我将I/O代码拆分为本地(静态类),因为我担心会出现问题.由于它是分裂的,应该有关键的部分.
下面的每个案例都是未实例化的本地(静态)代码.
情况1:
procedure Foo(obj:TObject);
begin ... end;
Run Code Online (Sandbox Code Playgroud)
案例2:
procedure Bar(obj:TObject);
var i: integer;
begin
for i:=0 to X do ...{something}
end;
Run Code Online (Sandbox Code Playgroud)
案例3:
function Foo(obj:TObject; j:Integer):TSomeObject
var i:integer;
begin
for i:=0 to X do
for j:=0 to Y do
Result:={something}
end;
Run Code Online (Sandbox Code Playgroud)
问题1:在哪种情况下我需要关键部分,以便在> 1个线程同时调用它时没有问题?
问题2:如果线程1从文件A读取X(条目)而线程2写入X(条目)到文件A,是否会出现问题?
我什么时候应该使用关键部分?我试着把它想象成我的脑袋,但它很难 - 只有一个线程:))
编辑
这适合它吗?
{每2GB文件的一个类}
TSpecificFile = class
cs: TCriticalSection;
...
end;
TFileParser = class
file :TSpecificFile;
void Parsethis; void ParseThat....
end;
function Read(file: TSpecificFile): TSomeObject;
begin
file.cs.Enter;
try
...//read …Run Code Online (Sandbox Code Playgroud) 我已经使用本教程创建了一个带有使用NSMutableArray填充的表视图的应用程序.现在我想添加功能,以便向阵列添加其他项目并保存/加载它们.我已经将Fruit类定制为如下所示:
#import <UIKit/UIKit.h>
@interface Fruit : NSObject {
NSString *name;
NSString *instructions;
NSString *explination;
NSString *imagePath;
}
@property(nonatomic,copy) NSString *name;
@property(nonatomic,copy) NSString *instructions;
@property(nonatomic,copy) NSString *explination;
@property(nonatomic,copy) NSString *imagePath;
- (id)initWithName:(NSString*)n instructions:(NSString *)inst explination:(NSString *)why imagePath:(NSString *)img;
@end
Run Code Online (Sandbox Code Playgroud)
和Fruit.m文件:
#import "Fruit.h"
@implementation Fruit
@synthesize name,instructions,explination,imagePath;
- (id)initWithName: (NSString*)n instructions:(NSString*)inst explination:(NSString *)why imagePath:(NSString *)img {
self.name = n;
self.instructions = inst;
self.explination = why;
self.imagePath = img;
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
这很好用,我可以加载两个textview和一个imageView,而不只是一个textview.但是,我将如何保存用户创建的任何新项目,并在应用程序再次启动时加载它们(如果存在)?
在AVFoundation中有一种相对简单的循环视频方式吗?
我已经创建了我的AVPlayer和AVPlayerLayer:
avPlayer = [[AVPlayer playerWithURL:videoUrl] retain];
avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:avPlayer] retain];
avPlayerLayer.frame = contentView.layer.bounds;
[contentView.layer addSublayer: avPlayerLayer];
Run Code Online (Sandbox Code Playgroud)
然后我播放我的视频:
[avPlayer play];
Run Code Online (Sandbox Code Playgroud)
视频播放正常但最后停止播放.使用MPMoviePlayerController,您只需将其repeatMode属性设置为正确的值即可.AVPlayer似乎没有类似的属性.似乎没有一个回调可以告诉我什么时候电影结束所以我可以寻找开头并再次播放它.
我没有使用MPMoviePlayerController,因为它有一些严重的限制.我希望能够一次播放多个视频流.
我一直在寻找一种有效的单词分区算法,但没有太大的成功.例如,给定单词hello我想获得该单词的所有可能分区:{h,e,l,l,o},{h,e,l,lo},{h,e,llo} ,. ..,{你好}.我找到的所有内容都谈到了分词,这不是我的意思.
先感谢您!
请考虑以下Python代码:
>>> re.search(r'.*(99)', 'aa99bb').groups()
('99',)
>>> re.search(r'.*(99)?', 'aa99bb').groups()
(None,)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我在第二个例子中没有抓到99.
我需要使用某种信号量来保护对互斥区域的访问,但是我需要这个区域来跨越多个线程.这是我在文档中找到的:
警告:NSLock类使用POSIX线程来实现其锁定行为.向NSLock对象发送解锁消息时,必须确保从发送初始锁定消息的同一线程发送消息.从其他线程解锁锁定可能导致未定义的行为.
我记得我读到这是一种防止编程错误的方法.这个陈述是否正确?我从文档中读到了线程指南,但我找不到任何其他允许从不同线程锁定和解锁的类.在Cocoa中有没有其他解决方案可以做到这一点?谢谢!
我有两个unix格式的时间戳,我需要找到一种比较它们的方法,并找出哪一个是最新的(最接近当前日期).
这两个时间戳是:
有一种简单的方法在Javascript中执行此操作吗?
c ×2
javascript ×2
algorithm ×1
avfoundation ×1
avplayer ×1
c++ ×1
cocoa ×1
delphi ×1
ios ×1
iphone ×1
jquery ×1
load ×1
nslock ×1
objective-c ×1
pseudocode ×1
python ×1
rationale ×1
regex ×1
save ×1
stack ×1
struct ×1
swift ×1
uitableview ×1